import { parentPort } from 'node:worker_threads';
import { v4 as uuid } from 'uuid';
import { taskMap } from '../src/taskMap.js';
import '../src/utils/logger.js';
// --------------------------------
// 以下为程序注入 header 部分代码
// --------------------------------

const tasks = {}
parentPort.on('message', async (message) => {
    console.log('parentPort', message)
    const { appInfo, cmd, from, id, params, response, type, initData } = message;
    const window = {
        JeeWeb: {
            utils: { uuid },
            OS: 0x0b,
            deviceBind: appInfo.deviceBind
        }
    }
    // global.window.JeeWeb = {};
    // global.appInfo = {}
    // global.window.JeeWeb.deviceBind = []
    // global.window.JeeWeb.OS = 0x0b;
    // global.window.JeeWeb.utils = { uuid };
    // 保存全局数据
    const saveState = (data) => {
        console.log('saveState', data)
        data && parentPort.postMessage({
            ...message,
            type: 'init',
            data
        });
    }
    /**
     * DeviceManager
     */
(function (global, factory) {
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
  typeof define === 'function' && define.amd ? define(factory) :
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.DeviceManager = factory());
})(this, (function () { 'use strict';

  /** Detect free variable `global` from Node.js. */
  var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;

  var freeGlobal$1 = freeGlobal;

  /** Detect free variable `self`. */
  var freeSelf = typeof self == 'object' && self && self.Object === Object && self;

  /** Used as a reference to the global object. */
  var root = freeGlobal$1 || freeSelf || Function('return this')();

  var root$1 = root;

  /** Built-in value references. */
  var Symbol$1 = root$1.Symbol;

  var Symbol$2 = Symbol$1;

  /** Used for built-in method references. */
  var objectProto$c = Object.prototype;

  /** Used to check objects for own properties. */
  var hasOwnProperty$a = objectProto$c.hasOwnProperty;

  /**
   * Used to resolve the
   * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
   * of values.
   */
  var nativeObjectToString$1 = objectProto$c.toString;

  /** Built-in value references. */
  var symToStringTag$1 = Symbol$2 ? Symbol$2.toStringTag : undefined;

  /**
   * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
   *
   * @private
   * @param {*} value The value to query.
   * @returns {string} Returns the raw `toStringTag`.
   */
  function getRawTag(value) {
    var isOwn = hasOwnProperty$a.call(value, symToStringTag$1),
        tag = value[symToStringTag$1];

    try {
      value[symToStringTag$1] = undefined;
      var unmasked = true;
    } catch (e) {}

    var result = nativeObjectToString$1.call(value);
    if (unmasked) {
      if (isOwn) {
        value[symToStringTag$1] = tag;
      } else {
        delete value[symToStringTag$1];
      }
    }
    return result;
  }

  /** Used for built-in method references. */
  var objectProto$b = Object.prototype;

  /**
   * Used to resolve the
   * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
   * of values.
   */
  var nativeObjectToString = objectProto$b.toString;

  /**
   * Converts `value` to a string using `Object.prototype.toString`.
   *
   * @private
   * @param {*} value The value to convert.
   * @returns {string} Returns the converted string.
   */
  function objectToString(value) {
    return nativeObjectToString.call(value);
  }

  /** `Object#toString` result references. */
  var nullTag = '[object Null]',
      undefinedTag = '[object Undefined]';

  /** Built-in value references. */
  var symToStringTag = Symbol$2 ? Symbol$2.toStringTag : undefined;

  /**
   * The base implementation of `getTag` without fallbacks for buggy environments.
   *
   * @private
   * @param {*} value The value to query.
   * @returns {string} Returns the `toStringTag`.
   */
  function baseGetTag(value) {
    if (value == null) {
      return value === undefined ? undefinedTag : nullTag;
    }
    return (symToStringTag && symToStringTag in Object(value))
      ? getRawTag(value)
      : objectToString(value);
  }

  /**
   * Checks if `value` is object-like. A value is object-like if it's not `null`
   * and has a `typeof` result of "object".
   *
   * @static
   * @memberOf _
   * @since 4.0.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
   * @example
   *
   * _.isObjectLike({});
   * // => true
   *
   * _.isObjectLike([1, 2, 3]);
   * // => true
   *
   * _.isObjectLike(_.noop);
   * // => false
   *
   * _.isObjectLike(null);
   * // => false
   */
  function isObjectLike(value) {
    return value != null && typeof value == 'object';
  }

  /** `Object#toString` result references. */
  var symbolTag = '[object Symbol]';

  /**
   * Checks if `value` is classified as a `Symbol` primitive or object.
   *
   * @static
   * @memberOf _
   * @since 4.0.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
   * @example
   *
   * _.isSymbol(Symbol.iterator);
   * // => true
   *
   * _.isSymbol('abc');
   * // => false
   */
  function isSymbol(value) {
    return typeof value == 'symbol' ||
      (isObjectLike(value) && baseGetTag(value) == symbolTag);
  }

  /**
   * A specialized version of `_.map` for arrays without support for iteratee
   * shorthands.
   *
   * @private
   * @param {Array} [array] The array to iterate over.
   * @param {Function} iteratee The function invoked per iteration.
   * @returns {Array} Returns the new mapped array.
   */
  function arrayMap(array, iteratee) {
    var index = -1,
        length = array == null ? 0 : array.length,
        result = Array(length);

    while (++index < length) {
      result[index] = iteratee(array[index], index, array);
    }
    return result;
  }

  /**
   * Checks if `value` is classified as an `Array` object.
   *
   * @static
   * @memberOf _
   * @since 0.1.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is an array, else `false`.
   * @example
   *
   * _.isArray([1, 2, 3]);
   * // => true
   *
   * _.isArray(document.body.children);
   * // => false
   *
   * _.isArray('abc');
   * // => false
   *
   * _.isArray(_.noop);
   * // => false
   */
  var isArray = Array.isArray;

  var isArray$1 = isArray;

  /** Used as references for various `Number` constants. */
  var INFINITY$1 = 1 / 0;

  /** Used to convert symbols to primitives and strings. */
  var symbolProto = Symbol$2 ? Symbol$2.prototype : undefined,
      symbolToString = symbolProto ? symbolProto.toString : undefined;

  /**
   * The base implementation of `_.toString` which doesn't convert nullish
   * values to empty strings.
   *
   * @private
   * @param {*} value The value to process.
   * @returns {string} Returns the string.
   */
  function baseToString(value) {
    // Exit early for strings to avoid a performance hit in some environments.
    if (typeof value == 'string') {
      return value;
    }
    if (isArray$1(value)) {
      // Recursively convert values (susceptible to call stack limits).
      return arrayMap(value, baseToString) + '';
    }
    if (isSymbol(value)) {
      return symbolToString ? symbolToString.call(value) : '';
    }
    var result = (value + '');
    return (result == '0' && (1 / value) == -INFINITY$1) ? '-0' : result;
  }

  /**
   * Checks if `value` is the
   * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
   * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
   *
   * @static
   * @memberOf _
   * @since 0.1.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is an object, else `false`.
   * @example
   *
   * _.isObject({});
   * // => true
   *
   * _.isObject([1, 2, 3]);
   * // => true
   *
   * _.isObject(_.noop);
   * // => true
   *
   * _.isObject(null);
   * // => false
   */
  function isObject(value) {
    var type = typeof value;
    return value != null && (type == 'object' || type == 'function');
  }

  /**
   * This method returns the first argument it receives.
   *
   * @static
   * @since 0.1.0
   * @memberOf _
   * @category Util
   * @param {*} value Any value.
   * @returns {*} Returns `value`.
   * @example
   *
   * var object = { 'a': 1 };
   *
   * console.log(_.identity(object) === object);
   * // => true
   */
  function identity(value) {
    return value;
  }

  /** `Object#toString` result references. */
  var asyncTag = '[object AsyncFunction]',
      funcTag$1 = '[object Function]',
      genTag = '[object GeneratorFunction]',
      proxyTag = '[object Proxy]';

  /**
   * Checks if `value` is classified as a `Function` object.
   *
   * @static
   * @memberOf _
   * @since 0.1.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is a function, else `false`.
   * @example
   *
   * _.isFunction(_);
   * // => true
   *
   * _.isFunction(/abc/);
   * // => false
   */
  function isFunction(value) {
    if (!isObject(value)) {
      return false;
    }
    // The use of `Object#toString` avoids issues with the `typeof` operator
    // in Safari 9 which returns 'object' for typed arrays and other constructors.
    var tag = baseGetTag(value);
    return tag == funcTag$1 || tag == genTag || tag == asyncTag || tag == proxyTag;
  }

  /** Used to detect overreaching core-js shims. */
  var coreJsData = root$1['__core-js_shared__'];

  var coreJsData$1 = coreJsData;

  /** Used to detect methods masquerading as native. */
  var maskSrcKey = (function() {
    var uid = /[^.]+$/.exec(coreJsData$1 && coreJsData$1.keys && coreJsData$1.keys.IE_PROTO || '');
    return uid ? ('Symbol(src)_1.' + uid) : '';
  }());

  /**
   * Checks if `func` has its source masked.
   *
   * @private
   * @param {Function} func The function to check.
   * @returns {boolean} Returns `true` if `func` is masked, else `false`.
   */
  function isMasked(func) {
    return !!maskSrcKey && (maskSrcKey in func);
  }

  /** Used for built-in method references. */
  var funcProto$2 = Function.prototype;

  /** Used to resolve the decompiled source of functions. */
  var funcToString$2 = funcProto$2.toString;

  /**
   * Converts `func` to its source code.
   *
   * @private
   * @param {Function} func The function to convert.
   * @returns {string} Returns the source code.
   */
  function toSource(func) {
    if (func != null) {
      try {
        return funcToString$2.call(func);
      } catch (e) {}
      try {
        return (func + '');
      } catch (e) {}
    }
    return '';
  }

  /**
   * Used to match `RegExp`
   * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
   */
  var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;

  /** Used to detect host constructors (Safari). */
  var reIsHostCtor = /^\[object .+?Constructor\]$/;

  /** Used for built-in method references. */
  var funcProto$1 = Function.prototype,
      objectProto$a = Object.prototype;

  /** Used to resolve the decompiled source of functions. */
  var funcToString$1 = funcProto$1.toString;

  /** Used to check objects for own properties. */
  var hasOwnProperty$9 = objectProto$a.hasOwnProperty;

  /** Used to detect if a method is native. */
  var reIsNative = RegExp('^' +
    funcToString$1.call(hasOwnProperty$9).replace(reRegExpChar, '\\$&')
    .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
  );

  /**
   * The base implementation of `_.isNative` without bad shim checks.
   *
   * @private
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is a native function,
   *  else `false`.
   */
  function baseIsNative(value) {
    if (!isObject(value) || isMasked(value)) {
      return false;
    }
    var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
    return pattern.test(toSource(value));
  }

  /**
   * Gets the value at `key` of `object`.
   *
   * @private
   * @param {Object} [object] The object to query.
   * @param {string} key The key of the property to get.
   * @returns {*} Returns the property value.
   */
  function getValue(object, key) {
    return object == null ? undefined : object[key];
  }

  /**
   * Gets the native function at `key` of `object`.
   *
   * @private
   * @param {Object} object The object to query.
   * @param {string} key The key of the method to get.
   * @returns {*} Returns the function if it's native, else `undefined`.
   */
  function getNative(object, key) {
    var value = getValue(object, key);
    return baseIsNative(value) ? value : undefined;
  }

  /* Built-in method references that are verified to be native. */
  var WeakMap = getNative(root$1, 'WeakMap');

  var WeakMap$1 = WeakMap;

  /**
   * A faster alternative to `Function#apply`, this function invokes `func`
   * with the `this` binding of `thisArg` and the arguments of `args`.
   *
   * @private
   * @param {Function} func The function to invoke.
   * @param {*} thisArg The `this` binding of `func`.
   * @param {Array} args The arguments to invoke `func` with.
   * @returns {*} Returns the result of `func`.
   */
  function apply(func, thisArg, args) {
    switch (args.length) {
      case 0: return func.call(thisArg);
      case 1: return func.call(thisArg, args[0]);
      case 2: return func.call(thisArg, args[0], args[1]);
      case 3: return func.call(thisArg, args[0], args[1], args[2]);
    }
    return func.apply(thisArg, args);
  }

  /** Used to detect hot functions by number of calls within a span of milliseconds. */
  var HOT_COUNT = 800,
      HOT_SPAN = 16;

  /* Built-in method references for those with the same name as other `lodash` methods. */
  var nativeNow = Date.now;

  /**
   * Creates a function that'll short out and invoke `identity` instead
   * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`
   * milliseconds.
   *
   * @private
   * @param {Function} func The function to restrict.
   * @returns {Function} Returns the new shortable function.
   */
  function shortOut(func) {
    var count = 0,
        lastCalled = 0;

    return function() {
      var stamp = nativeNow(),
          remaining = HOT_SPAN - (stamp - lastCalled);

      lastCalled = stamp;
      if (remaining > 0) {
        if (++count >= HOT_COUNT) {
          return arguments[0];
        }
      } else {
        count = 0;
      }
      return func.apply(undefined, arguments);
    };
  }

  /**
   * Creates a function that returns `value`.
   *
   * @static
   * @memberOf _
   * @since 2.4.0
   * @category Util
   * @param {*} value The value to return from the new function.
   * @returns {Function} Returns the new constant function.
   * @example
   *
   * var objects = _.times(2, _.constant({ 'a': 1 }));
   *
   * console.log(objects);
   * // => [{ 'a': 1 }, { 'a': 1 }]
   *
   * console.log(objects[0] === objects[1]);
   * // => true
   */
  function constant(value) {
    return function() {
      return value;
    };
  }

  var defineProperty = (function() {
    try {
      var func = getNative(Object, 'defineProperty');
      func({}, '', {});
      return func;
    } catch (e) {}
  }());

  var defineProperty$1 = defineProperty;

  /**
   * The base implementation of `setToString` without support for hot loop shorting.
   *
   * @private
   * @param {Function} func The function to modify.
   * @param {Function} string The `toString` result.
   * @returns {Function} Returns `func`.
   */
  var baseSetToString = !defineProperty$1 ? identity : function(func, string) {
    return defineProperty$1(func, 'toString', {
      'configurable': true,
      'enumerable': false,
      'value': constant(string),
      'writable': true
    });
  };

  var baseSetToString$1 = baseSetToString;

  /**
   * Sets the `toString` method of `func` to return `string`.
   *
   * @private
   * @param {Function} func The function to modify.
   * @param {Function} string The `toString` result.
   * @returns {Function} Returns `func`.
   */
  var setToString = shortOut(baseSetToString$1);

  var setToString$1 = setToString;

  /**
   * A specialized version of `_.forEach` for arrays without support for
   * iteratee shorthands.
   *
   * @private
   * @param {Array} [array] The array to iterate over.
   * @param {Function} iteratee The function invoked per iteration.
   * @returns {Array} Returns `array`.
   */
  function arrayEach(array, iteratee) {
    var index = -1,
        length = array == null ? 0 : array.length;

    while (++index < length) {
      if (iteratee(array[index], index, array) === false) {
        break;
      }
    }
    return array;
  }

  /** Used as references for various `Number` constants. */
  var MAX_SAFE_INTEGER$1 = 9007199254740991;

  /** Used to detect unsigned integer values. */
  var reIsUint = /^(?:0|[1-9]\d*)$/;

  /**
   * Checks if `value` is a valid array-like index.
   *
   * @private
   * @param {*} value The value to check.
   * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
   * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
   */
  function isIndex(value, length) {
    var type = typeof value;
    length = length == null ? MAX_SAFE_INTEGER$1 : length;

    return !!length &&
      (type == 'number' ||
        (type != 'symbol' && reIsUint.test(value))) &&
          (value > -1 && value % 1 == 0 && value < length);
  }

  /**
   * The base implementation of `assignValue` and `assignMergeValue` without
   * value checks.
   *
   * @private
   * @param {Object} object The object to modify.
   * @param {string} key The key of the property to assign.
   * @param {*} value The value to assign.
   */
  function baseAssignValue(object, key, value) {
    if (key == '__proto__' && defineProperty$1) {
      defineProperty$1(object, key, {
        'configurable': true,
        'enumerable': true,
        'value': value,
        'writable': true
      });
    } else {
      object[key] = value;
    }
  }

  /**
   * Performs a
   * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
   * comparison between two values to determine if they are equivalent.
   *
   * @static
   * @memberOf _
   * @since 4.0.0
   * @category Lang
   * @param {*} value The value to compare.
   * @param {*} other The other value to compare.
   * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
   * @example
   *
   * var object = { 'a': 1 };
   * var other = { 'a': 1 };
   *
   * _.eq(object, object);
   * // => true
   *
   * _.eq(object, other);
   * // => false
   *
   * _.eq('a', 'a');
   * // => true
   *
   * _.eq('a', Object('a'));
   * // => false
   *
   * _.eq(NaN, NaN);
   * // => true
   */
  function eq(value, other) {
    return value === other || (value !== value && other !== other);
  }

  /** Used for built-in method references. */
  var objectProto$9 = Object.prototype;

  /** Used to check objects for own properties. */
  var hasOwnProperty$8 = objectProto$9.hasOwnProperty;

  /**
   * Assigns `value` to `key` of `object` if the existing value is not equivalent
   * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
   * for equality comparisons.
   *
   * @private
   * @param {Object} object The object to modify.
   * @param {string} key The key of the property to assign.
   * @param {*} value The value to assign.
   */
  function assignValue(object, key, value) {
    var objValue = object[key];
    if (!(hasOwnProperty$8.call(object, key) && eq(objValue, value)) ||
        (value === undefined && !(key in object))) {
      baseAssignValue(object, key, value);
    }
  }

  /* Built-in method references for those with the same name as other `lodash` methods. */
  var nativeMax = Math.max;

  /**
   * A specialized version of `baseRest` which transforms the rest array.
   *
   * @private
   * @param {Function} func The function to apply a rest parameter to.
   * @param {number} [start=func.length-1] The start position of the rest parameter.
   * @param {Function} transform The rest array transform.
   * @returns {Function} Returns the new function.
   */
  function overRest(func, start, transform) {
    start = nativeMax(start === undefined ? (func.length - 1) : start, 0);
    return function() {
      var args = arguments,
          index = -1,
          length = nativeMax(args.length - start, 0),
          array = Array(length);

      while (++index < length) {
        array[index] = args[start + index];
      }
      index = -1;
      var otherArgs = Array(start + 1);
      while (++index < start) {
        otherArgs[index] = args[index];
      }
      otherArgs[start] = transform(array);
      return apply(func, this, otherArgs);
    };
  }

  /** Used as references for various `Number` constants. */
  var MAX_SAFE_INTEGER = 9007199254740991;

  /**
   * Checks if `value` is a valid array-like length.
   *
   * **Note:** This method is loosely based on
   * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
   *
   * @static
   * @memberOf _
   * @since 4.0.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
   * @example
   *
   * _.isLength(3);
   * // => true
   *
   * _.isLength(Number.MIN_VALUE);
   * // => false
   *
   * _.isLength(Infinity);
   * // => false
   *
   * _.isLength('3');
   * // => false
   */
  function isLength(value) {
    return typeof value == 'number' &&
      value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
  }

  /**
   * Checks if `value` is array-like. A value is considered array-like if it's
   * not a function and has a `value.length` that's an integer greater than or
   * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
   *
   * @static
   * @memberOf _
   * @since 4.0.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
   * @example
   *
   * _.isArrayLike([1, 2, 3]);
   * // => true
   *
   * _.isArrayLike(document.body.children);
   * // => true
   *
   * _.isArrayLike('abc');
   * // => true
   *
   * _.isArrayLike(_.noop);
   * // => false
   */
  function isArrayLike(value) {
    return value != null && isLength(value.length) && !isFunction(value);
  }

  /** Used for built-in method references. */
  var objectProto$8 = Object.prototype;

  /**
   * Checks if `value` is likely a prototype object.
   *
   * @private
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
   */
  function isPrototype(value) {
    var Ctor = value && value.constructor,
        proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$8;

    return value === proto;
  }

  /**
   * The base implementation of `_.times` without support for iteratee shorthands
   * or max array length checks.
   *
   * @private
   * @param {number} n The number of times to invoke `iteratee`.
   * @param {Function} iteratee The function invoked per iteration.
   * @returns {Array} Returns the array of results.
   */
  function baseTimes(n, iteratee) {
    var index = -1,
        result = Array(n);

    while (++index < n) {
      result[index] = iteratee(index);
    }
    return result;
  }

  /** `Object#toString` result references. */
  var argsTag$1 = '[object Arguments]';

  /**
   * The base implementation of `_.isArguments`.
   *
   * @private
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is an `arguments` object,
   */
  function baseIsArguments(value) {
    return isObjectLike(value) && baseGetTag(value) == argsTag$1;
  }

  /** Used for built-in method references. */
  var objectProto$7 = Object.prototype;

  /** Used to check objects for own properties. */
  var hasOwnProperty$7 = objectProto$7.hasOwnProperty;

  /** Built-in value references. */
  var propertyIsEnumerable = objectProto$7.propertyIsEnumerable;

  /**
   * Checks if `value` is likely an `arguments` object.
   *
   * @static
   * @memberOf _
   * @since 0.1.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is an `arguments` object,
   *  else `false`.
   * @example
   *
   * _.isArguments(function() { return arguments; }());
   * // => true
   *
   * _.isArguments([1, 2, 3]);
   * // => false
   */
  var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {
    return isObjectLike(value) && hasOwnProperty$7.call(value, 'callee') &&
      !propertyIsEnumerable.call(value, 'callee');
  };

  var isArguments$1 = isArguments;

  /**
   * This method returns `false`.
   *
   * @static
   * @memberOf _
   * @since 4.13.0
   * @category Util
   * @returns {boolean} Returns `false`.
   * @example
   *
   * _.times(2, _.stubFalse);
   * // => [false, false]
   */
  function stubFalse() {
    return false;
  }

  /** Detect free variable `exports`. */
  var freeExports$1 = typeof exports == 'object' && exports && !exports.nodeType && exports;

  /** Detect free variable `module`. */
  var freeModule$1 = freeExports$1 && typeof module == 'object' && module && !module.nodeType && module;

  /** Detect the popular CommonJS extension `module.exports`. */
  var moduleExports$1 = freeModule$1 && freeModule$1.exports === freeExports$1;

  /** Built-in value references. */
  var Buffer = moduleExports$1 ? root$1.Buffer : undefined;

  /* Built-in method references for those with the same name as other `lodash` methods. */
  var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;

  /**
   * Checks if `value` is a buffer.
   *
   * @static
   * @memberOf _
   * @since 4.3.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
   * @example
   *
   * _.isBuffer(new Buffer(2));
   * // => true
   *
   * _.isBuffer(new Uint8Array(2));
   * // => false
   */
  var isBuffer = nativeIsBuffer || stubFalse;

  var isBuffer$1 = isBuffer;

  /** `Object#toString` result references. */
  var argsTag = '[object Arguments]',
      arrayTag = '[object Array]',
      boolTag = '[object Boolean]',
      dateTag = '[object Date]',
      errorTag = '[object Error]',
      funcTag = '[object Function]',
      mapTag$2 = '[object Map]',
      numberTag = '[object Number]',
      objectTag$2 = '[object Object]',
      regexpTag = '[object RegExp]',
      setTag$2 = '[object Set]',
      stringTag$1 = '[object String]',
      weakMapTag$1 = '[object WeakMap]';

  var arrayBufferTag = '[object ArrayBuffer]',
      dataViewTag$1 = '[object DataView]',
      float32Tag = '[object Float32Array]',
      float64Tag = '[object Float64Array]',
      int8Tag = '[object Int8Array]',
      int16Tag = '[object Int16Array]',
      int32Tag = '[object Int32Array]',
      uint8Tag = '[object Uint8Array]',
      uint8ClampedTag = '[object Uint8ClampedArray]',
      uint16Tag = '[object Uint16Array]',
      uint32Tag = '[object Uint32Array]';

  /** Used to identify `toStringTag` values of typed arrays. */
  var typedArrayTags = {};
  typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =
  typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =
  typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
  typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
  typedArrayTags[uint32Tag] = true;
  typedArrayTags[argsTag] = typedArrayTags[arrayTag] =
  typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
  typedArrayTags[dataViewTag$1] = typedArrayTags[dateTag] =
  typedArrayTags[errorTag] = typedArrayTags[funcTag] =
  typedArrayTags[mapTag$2] = typedArrayTags[numberTag] =
  typedArrayTags[objectTag$2] = typedArrayTags[regexpTag] =
  typedArrayTags[setTag$2] = typedArrayTags[stringTag$1] =
  typedArrayTags[weakMapTag$1] = false;

  /**
   * The base implementation of `_.isTypedArray` without Node.js optimizations.
   *
   * @private
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
   */
  function baseIsTypedArray(value) {
    return isObjectLike(value) &&
      isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
  }

  /**
   * The base implementation of `_.unary` without support for storing metadata.
   *
   * @private
   * @param {Function} func The function to cap arguments for.
   * @returns {Function} Returns the new capped function.
   */
  function baseUnary(func) {
    return function(value) {
      return func(value);
    };
  }

  /** Detect free variable `exports`. */
  var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;

  /** Detect free variable `module`. */
  var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;

  /** Detect the popular CommonJS extension `module.exports`. */
  var moduleExports = freeModule && freeModule.exports === freeExports;

  /** Detect free variable `process` from Node.js. */
  var freeProcess = moduleExports && freeGlobal$1.process;

  /** Used to access faster Node.js helpers. */
  var nodeUtil = (function() {
    try {
      // Use `util.types` for Node.js 10+.
      var types = freeModule && freeModule.require && freeModule.require('util').types;

      if (types) {
        return types;
      }

      // Legacy `process.binding('util')` for Node.js < 10.
      return freeProcess && freeProcess.binding && freeProcess.binding('util');
    } catch (e) {}
  }());

  var nodeUtil$1 = nodeUtil;

  /* Node.js helper references. */
  var nodeIsTypedArray = nodeUtil$1 && nodeUtil$1.isTypedArray;

  /**
   * Checks if `value` is classified as a typed array.
   *
   * @static
   * @memberOf _
   * @since 3.0.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
   * @example
   *
   * _.isTypedArray(new Uint8Array);
   * // => true
   *
   * _.isTypedArray([]);
   * // => false
   */
  var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;

  var isTypedArray$1 = isTypedArray;

  /** Used for built-in method references. */
  var objectProto$6 = Object.prototype;

  /** Used to check objects for own properties. */
  var hasOwnProperty$6 = objectProto$6.hasOwnProperty;

  /**
   * Creates an array of the enumerable property names of the array-like `value`.
   *
   * @private
   * @param {*} value The value to query.
   * @param {boolean} inherited Specify returning inherited property names.
   * @returns {Array} Returns the array of property names.
   */
  function arrayLikeKeys(value, inherited) {
    var isArr = isArray$1(value),
        isArg = !isArr && isArguments$1(value),
        isBuff = !isArr && !isArg && isBuffer$1(value),
        isType = !isArr && !isArg && !isBuff && isTypedArray$1(value),
        skipIndexes = isArr || isArg || isBuff || isType,
        result = skipIndexes ? baseTimes(value.length, String) : [],
        length = result.length;

    for (var key in value) {
      if ((inherited || hasOwnProperty$6.call(value, key)) &&
          !(skipIndexes && (
             // Safari 9 has enumerable `arguments.length` in strict mode.
             key == 'length' ||
             // Node.js 0.10 has enumerable non-index properties on buffers.
             (isBuff && (key == 'offset' || key == 'parent')) ||
             // PhantomJS 2 has enumerable non-index properties on typed arrays.
             (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||
             // Skip index properties.
             isIndex(key, length)
          ))) {
        result.push(key);
      }
    }
    return result;
  }

  /**
   * Creates a unary function that invokes `func` with its argument transformed.
   *
   * @private
   * @param {Function} func The function to wrap.
   * @param {Function} transform The argument transform.
   * @returns {Function} Returns the new function.
   */
  function overArg(func, transform) {
    return function(arg) {
      return func(transform(arg));
    };
  }

  /* Built-in method references for those with the same name as other `lodash` methods. */
  var nativeKeys = overArg(Object.keys, Object);

  var nativeKeys$1 = nativeKeys;

  /** Used for built-in method references. */
  var objectProto$5 = Object.prototype;

  /** Used to check objects for own properties. */
  var hasOwnProperty$5 = objectProto$5.hasOwnProperty;

  /**
   * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
   *
   * @private
   * @param {Object} object The object to query.
   * @returns {Array} Returns the array of property names.
   */
  function baseKeys(object) {
    if (!isPrototype(object)) {
      return nativeKeys$1(object);
    }
    var result = [];
    for (var key in Object(object)) {
      if (hasOwnProperty$5.call(object, key) && key != 'constructor') {
        result.push(key);
      }
    }
    return result;
  }

  /**
   * Creates an array of the own enumerable property names of `object`.
   *
   * **Note:** Non-object values are coerced to objects. See the
   * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
   * for more details.
   *
   * @static
   * @since 0.1.0
   * @memberOf _
   * @category Object
   * @param {Object} object The object to query.
   * @returns {Array} Returns the array of property names.
   * @example
   *
   * function Foo() {
   *   this.a = 1;
   *   this.b = 2;
   * }
   *
   * Foo.prototype.c = 3;
   *
   * _.keys(new Foo);
   * // => ['a', 'b'] (iteration order is not guaranteed)
   *
   * _.keys('hi');
   * // => ['0', '1']
   */
  function keys(object) {
    return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
  }

  /** Used to match property names within property paths. */
  var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
      reIsPlainProp = /^\w*$/;

  /**
   * Checks if `value` is a property name and not a property path.
   *
   * @private
   * @param {*} value The value to check.
   * @param {Object} [object] The object to query keys on.
   * @returns {boolean} Returns `true` if `value` is a property name, else `false`.
   */
  function isKey(value, object) {
    if (isArray$1(value)) {
      return false;
    }
    var type = typeof value;
    if (type == 'number' || type == 'symbol' || type == 'boolean' ||
        value == null || isSymbol(value)) {
      return true;
    }
    return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||
      (object != null && value in Object(object));
  }

  /* Built-in method references that are verified to be native. */
  var nativeCreate = getNative(Object, 'create');

  var nativeCreate$1 = nativeCreate;

  /**
   * Removes all key-value entries from the hash.
   *
   * @private
   * @name clear
   * @memberOf Hash
   */
  function hashClear() {
    this.__data__ = nativeCreate$1 ? nativeCreate$1(null) : {};
    this.size = 0;
  }

  /**
   * Removes `key` and its value from the hash.
   *
   * @private
   * @name delete
   * @memberOf Hash
   * @param {Object} hash The hash to modify.
   * @param {string} key The key of the value to remove.
   * @returns {boolean} Returns `true` if the entry was removed, else `false`.
   */
  function hashDelete(key) {
    var result = this.has(key) && delete this.__data__[key];
    this.size -= result ? 1 : 0;
    return result;
  }

  /** Used to stand-in for `undefined` hash values. */
  var HASH_UNDEFINED$1 = '__lodash_hash_undefined__';

  /** Used for built-in method references. */
  var objectProto$4 = Object.prototype;

  /** Used to check objects for own properties. */
  var hasOwnProperty$4 = objectProto$4.hasOwnProperty;

  /**
   * Gets the hash value for `key`.
   *
   * @private
   * @name get
   * @memberOf Hash
   * @param {string} key The key of the value to get.
   * @returns {*} Returns the entry value.
   */
  function hashGet(key) {
    var data = this.__data__;
    if (nativeCreate$1) {
      var result = data[key];
      return result === HASH_UNDEFINED$1 ? undefined : result;
    }
    return hasOwnProperty$4.call(data, key) ? data[key] : undefined;
  }

  /** Used for built-in method references. */
  var objectProto$3 = Object.prototype;

  /** Used to check objects for own properties. */
  var hasOwnProperty$3 = objectProto$3.hasOwnProperty;

  /**
   * Checks if a hash value for `key` exists.
   *
   * @private
   * @name has
   * @memberOf Hash
   * @param {string} key The key of the entry to check.
   * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
   */
  function hashHas(key) {
    var data = this.__data__;
    return nativeCreate$1 ? (data[key] !== undefined) : hasOwnProperty$3.call(data, key);
  }

  /** Used to stand-in for `undefined` hash values. */
  var HASH_UNDEFINED = '__lodash_hash_undefined__';

  /**
   * Sets the hash `key` to `value`.
   *
   * @private
   * @name set
   * @memberOf Hash
   * @param {string} key The key of the value to set.
   * @param {*} value The value to set.
   * @returns {Object} Returns the hash instance.
   */
  function hashSet(key, value) {
    var data = this.__data__;
    this.size += this.has(key) ? 0 : 1;
    data[key] = (nativeCreate$1 && value === undefined) ? HASH_UNDEFINED : value;
    return this;
  }

  /**
   * Creates a hash object.
   *
   * @private
   * @constructor
   * @param {Array} [entries] The key-value pairs to cache.
   */
  function Hash(entries) {
    var index = -1,
        length = entries == null ? 0 : entries.length;

    this.clear();
    while (++index < length) {
      var entry = entries[index];
      this.set(entry[0], entry[1]);
    }
  }

  // Add methods to `Hash`.
  Hash.prototype.clear = hashClear;
  Hash.prototype['delete'] = hashDelete;
  Hash.prototype.get = hashGet;
  Hash.prototype.has = hashHas;
  Hash.prototype.set = hashSet;

  /**
   * Removes all key-value entries from the list cache.
   *
   * @private
   * @name clear
   * @memberOf ListCache
   */
  function listCacheClear() {
    this.__data__ = [];
    this.size = 0;
  }

  /**
   * Gets the index at which the `key` is found in `array` of key-value pairs.
   *
   * @private
   * @param {Array} array The array to inspect.
   * @param {*} key The key to search for.
   * @returns {number} Returns the index of the matched value, else `-1`.
   */
  function assocIndexOf(array, key) {
    var length = array.length;
    while (length--) {
      if (eq(array[length][0], key)) {
        return length;
      }
    }
    return -1;
  }

  /** Used for built-in method references. */
  var arrayProto = Array.prototype;

  /** Built-in value references. */
  var splice = arrayProto.splice;

  /**
   * Removes `key` and its value from the list cache.
   *
   * @private
   * @name delete
   * @memberOf ListCache
   * @param {string} key The key of the value to remove.
   * @returns {boolean} Returns `true` if the entry was removed, else `false`.
   */
  function listCacheDelete(key) {
    var data = this.__data__,
        index = assocIndexOf(data, key);

    if (index < 0) {
      return false;
    }
    var lastIndex = data.length - 1;
    if (index == lastIndex) {
      data.pop();
    } else {
      splice.call(data, index, 1);
    }
    --this.size;
    return true;
  }

  /**
   * Gets the list cache value for `key`.
   *
   * @private
   * @name get
   * @memberOf ListCache
   * @param {string} key The key of the value to get.
   * @returns {*} Returns the entry value.
   */
  function listCacheGet(key) {
    var data = this.__data__,
        index = assocIndexOf(data, key);

    return index < 0 ? undefined : data[index][1];
  }

  /**
   * Checks if a list cache value for `key` exists.
   *
   * @private
   * @name has
   * @memberOf ListCache
   * @param {string} key The key of the entry to check.
   * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
   */
  function listCacheHas(key) {
    return assocIndexOf(this.__data__, key) > -1;
  }

  /**
   * Sets the list cache `key` to `value`.
   *
   * @private
   * @name set
   * @memberOf ListCache
   * @param {string} key The key of the value to set.
   * @param {*} value The value to set.
   * @returns {Object} Returns the list cache instance.
   */
  function listCacheSet(key, value) {
    var data = this.__data__,
        index = assocIndexOf(data, key);

    if (index < 0) {
      ++this.size;
      data.push([key, value]);
    } else {
      data[index][1] = value;
    }
    return this;
  }

  /**
   * Creates an list cache object.
   *
   * @private
   * @constructor
   * @param {Array} [entries] The key-value pairs to cache.
   */
  function ListCache(entries) {
    var index = -1,
        length = entries == null ? 0 : entries.length;

    this.clear();
    while (++index < length) {
      var entry = entries[index];
      this.set(entry[0], entry[1]);
    }
  }

  // Add methods to `ListCache`.
  ListCache.prototype.clear = listCacheClear;
  ListCache.prototype['delete'] = listCacheDelete;
  ListCache.prototype.get = listCacheGet;
  ListCache.prototype.has = listCacheHas;
  ListCache.prototype.set = listCacheSet;

  /* Built-in method references that are verified to be native. */
  var Map = getNative(root$1, 'Map');

  var Map$1 = Map;

  /**
   * Removes all key-value entries from the map.
   *
   * @private
   * @name clear
   * @memberOf MapCache
   */
  function mapCacheClear() {
    this.size = 0;
    this.__data__ = {
      'hash': new Hash,
      'map': new (Map$1 || ListCache),
      'string': new Hash
    };
  }

  /**
   * Checks if `value` is suitable for use as unique object key.
   *
   * @private
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
   */
  function isKeyable(value) {
    var type = typeof value;
    return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
      ? (value !== '__proto__')
      : (value === null);
  }

  /**
   * Gets the data for `map`.
   *
   * @private
   * @param {Object} map The map to query.
   * @param {string} key The reference key.
   * @returns {*} Returns the map data.
   */
  function getMapData(map, key) {
    var data = map.__data__;
    return isKeyable(key)
      ? data[typeof key == 'string' ? 'string' : 'hash']
      : data.map;
  }

  /**
   * Removes `key` and its value from the map.
   *
   * @private
   * @name delete
   * @memberOf MapCache
   * @param {string} key The key of the value to remove.
   * @returns {boolean} Returns `true` if the entry was removed, else `false`.
   */
  function mapCacheDelete(key) {
    var result = getMapData(this, key)['delete'](key);
    this.size -= result ? 1 : 0;
    return result;
  }

  /**
   * Gets the map value for `key`.
   *
   * @private
   * @name get
   * @memberOf MapCache
   * @param {string} key The key of the value to get.
   * @returns {*} Returns the entry value.
   */
  function mapCacheGet(key) {
    return getMapData(this, key).get(key);
  }

  /**
   * Checks if a map value for `key` exists.
   *
   * @private
   * @name has
   * @memberOf MapCache
   * @param {string} key The key of the entry to check.
   * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
   */
  function mapCacheHas(key) {
    return getMapData(this, key).has(key);
  }

  /**
   * Sets the map `key` to `value`.
   *
   * @private
   * @name set
   * @memberOf MapCache
   * @param {string} key The key of the value to set.
   * @param {*} value The value to set.
   * @returns {Object} Returns the map cache instance.
   */
  function mapCacheSet(key, value) {
    var data = getMapData(this, key),
        size = data.size;

    data.set(key, value);
    this.size += data.size == size ? 0 : 1;
    return this;
  }

  /**
   * Creates a map cache object to store key-value pairs.
   *
   * @private
   * @constructor
   * @param {Array} [entries] The key-value pairs to cache.
   */
  function MapCache(entries) {
    var index = -1,
        length = entries == null ? 0 : entries.length;

    this.clear();
    while (++index < length) {
      var entry = entries[index];
      this.set(entry[0], entry[1]);
    }
  }

  // Add methods to `MapCache`.
  MapCache.prototype.clear = mapCacheClear;
  MapCache.prototype['delete'] = mapCacheDelete;
  MapCache.prototype.get = mapCacheGet;
  MapCache.prototype.has = mapCacheHas;
  MapCache.prototype.set = mapCacheSet;

  /** Error message constants. */
  var FUNC_ERROR_TEXT = 'Expected a function';

  /**
   * Creates a function that memoizes the result of `func`. If `resolver` is
   * provided, it determines the cache key for storing the result based on the
   * arguments provided to the memoized function. By default, the first argument
   * provided to the memoized function is used as the map cache key. The `func`
   * is invoked with the `this` binding of the memoized function.
   *
   * **Note:** The cache is exposed as the `cache` property on the memoized
   * function. Its creation may be customized by replacing the `_.memoize.Cache`
   * constructor with one whose instances implement the
   * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)
   * method interface of `clear`, `delete`, `get`, `has`, and `set`.
   *
   * @static
   * @memberOf _
   * @since 0.1.0
   * @category Function
   * @param {Function} func The function to have its output memoized.
   * @param {Function} [resolver] The function to resolve the cache key.
   * @returns {Function} Returns the new memoized function.
   * @example
   *
   * var object = { 'a': 1, 'b': 2 };
   * var other = { 'c': 3, 'd': 4 };
   *
   * var values = _.memoize(_.values);
   * values(object);
   * // => [1, 2]
   *
   * values(other);
   * // => [3, 4]
   *
   * object.a = 2;
   * values(object);
   * // => [1, 2]
   *
   * // Modify the result cache.
   * values.cache.set(object, ['a', 'b']);
   * values(object);
   * // => ['a', 'b']
   *
   * // Replace `_.memoize.Cache`.
   * _.memoize.Cache = WeakMap;
   */
  function memoize(func, resolver) {
    if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {
      throw new TypeError(FUNC_ERROR_TEXT);
    }
    var memoized = function() {
      var args = arguments,
          key = resolver ? resolver.apply(this, args) : args[0],
          cache = memoized.cache;

      if (cache.has(key)) {
        return cache.get(key);
      }
      var result = func.apply(this, args);
      memoized.cache = cache.set(key, result) || cache;
      return result;
    };
    memoized.cache = new (memoize.Cache || MapCache);
    return memoized;
  }

  // Expose `MapCache`.
  memoize.Cache = MapCache;

  /** Used as the maximum memoize cache size. */
  var MAX_MEMOIZE_SIZE = 500;

  /**
   * A specialized version of `_.memoize` which clears the memoized function's
   * cache when it exceeds `MAX_MEMOIZE_SIZE`.
   *
   * @private
   * @param {Function} func The function to have its output memoized.
   * @returns {Function} Returns the new memoized function.
   */
  function memoizeCapped(func) {
    var result = memoize(func, function(key) {
      if (cache.size === MAX_MEMOIZE_SIZE) {
        cache.clear();
      }
      return key;
    });

    var cache = result.cache;
    return result;
  }

  /** Used to match property names within property paths. */
  var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;

  /** Used to match backslashes in property paths. */
  var reEscapeChar = /\\(\\)?/g;

  /**
   * Converts `string` to a property path array.
   *
   * @private
   * @param {string} string The string to convert.
   * @returns {Array} Returns the property path array.
   */
  var stringToPath = memoizeCapped(function(string) {
    var result = [];
    if (string.charCodeAt(0) === 46 /* . */) {
      result.push('');
    }
    string.replace(rePropName, function(match, number, quote, subString) {
      result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));
    });
    return result;
  });

  var stringToPath$1 = stringToPath;

  /**
   * Converts `value` to a string. An empty string is returned for `null`
   * and `undefined` values. The sign of `-0` is preserved.
   *
   * @static
   * @memberOf _
   * @since 4.0.0
   * @category Lang
   * @param {*} value The value to convert.
   * @returns {string} Returns the converted string.
   * @example
   *
   * _.toString(null);
   * // => ''
   *
   * _.toString(-0);
   * // => '-0'
   *
   * _.toString([1, 2, 3]);
   * // => '1,2,3'
   */
  function toString(value) {
    return value == null ? '' : baseToString(value);
  }

  /**
   * Casts `value` to a path array if it's not one.
   *
   * @private
   * @param {*} value The value to inspect.
   * @param {Object} [object] The object to query keys on.
   * @returns {Array} Returns the cast property path array.
   */
  function castPath(value, object) {
    if (isArray$1(value)) {
      return value;
    }
    return isKey(value, object) ? [value] : stringToPath$1(toString(value));
  }

  /** Used as references for various `Number` constants. */
  var INFINITY = 1 / 0;

  /**
   * Converts `value` to a string key if it's not a string or symbol.
   *
   * @private
   * @param {*} value The value to inspect.
   * @returns {string|symbol} Returns the key.
   */
  function toKey(value) {
    if (typeof value == 'string' || isSymbol(value)) {
      return value;
    }
    var result = (value + '');
    return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
  }

  /**
   * The base implementation of `_.get` without support for default values.
   *
   * @private
   * @param {Object} object The object to query.
   * @param {Array|string} path The path of the property to get.
   * @returns {*} Returns the resolved value.
   */
  function baseGet(object, path) {
    path = castPath(path, object);

    var index = 0,
        length = path.length;

    while (object != null && index < length) {
      object = object[toKey(path[index++])];
    }
    return (index && index == length) ? object : undefined;
  }

  /**
   * Gets the value at `path` of `object`. If the resolved value is
   * `undefined`, the `defaultValue` is returned in its place.
   *
   * @static
   * @memberOf _
   * @since 3.7.0
   * @category Object
   * @param {Object} object The object to query.
   * @param {Array|string} path The path of the property to get.
   * @param {*} [defaultValue] The value returned for `undefined` resolved values.
   * @returns {*} Returns the resolved value.
   * @example
   *
   * var object = { 'a': [{ 'b': { 'c': 3 } }] };
   *
   * _.get(object, 'a[0].b.c');
   * // => 3
   *
   * _.get(object, ['a', '0', 'b', 'c']);
   * // => 3
   *
   * _.get(object, 'a.b.c', 'default');
   * // => 'default'
   */
  function get(object, path, defaultValue) {
    var result = object == null ? undefined : baseGet(object, path);
    return result === undefined ? defaultValue : result;
  }

  /**
   * Appends the elements of `values` to `array`.
   *
   * @private
   * @param {Array} array The array to modify.
   * @param {Array} values The values to append.
   * @returns {Array} Returns `array`.
   */
  function arrayPush(array, values) {
    var index = -1,
        length = values.length,
        offset = array.length;

    while (++index < length) {
      array[offset + index] = values[index];
    }
    return array;
  }

  /** Built-in value references. */
  var spreadableSymbol = Symbol$2 ? Symbol$2.isConcatSpreadable : undefined;

  /**
   * Checks if `value` is a flattenable `arguments` object or array.
   *
   * @private
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.
   */
  function isFlattenable(value) {
    return isArray$1(value) || isArguments$1(value) ||
      !!(spreadableSymbol && value && value[spreadableSymbol]);
  }

  /**
   * The base implementation of `_.flatten` with support for restricting flattening.
   *
   * @private
   * @param {Array} array The array to flatten.
   * @param {number} depth The maximum recursion depth.
   * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.
   * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.
   * @param {Array} [result=[]] The initial result value.
   * @returns {Array} Returns the new flattened array.
   */
  function baseFlatten(array, depth, predicate, isStrict, result) {
    var index = -1,
        length = array.length;

    predicate || (predicate = isFlattenable);
    result || (result = []);

    while (++index < length) {
      var value = array[index];
      if (depth > 0 && predicate(value)) {
        if (depth > 1) {
          // Recursively flatten arrays (susceptible to call stack limits).
          baseFlatten(value, depth - 1, predicate, isStrict, result);
        } else {
          arrayPush(result, value);
        }
      } else if (!isStrict) {
        result[result.length] = value;
      }
    }
    return result;
  }

  /**
   * Flattens `array` a single level deep.
   *
   * @static
   * @memberOf _
   * @since 0.1.0
   * @category Array
   * @param {Array} array The array to flatten.
   * @returns {Array} Returns the new flattened array.
   * @example
   *
   * _.flatten([1, [2, [3, [4]], 5]]);
   * // => [1, 2, [3, [4]], 5]
   */
  function flatten(array) {
    var length = array == null ? 0 : array.length;
    return length ? baseFlatten(array, 1) : [];
  }

  /**
   * A specialized version of `baseRest` which flattens the rest array.
   *
   * @private
   * @param {Function} func The function to apply a rest parameter to.
   * @returns {Function} Returns the new function.
   */
  function flatRest(func) {
    return setToString$1(overRest(func, undefined, flatten), func + '');
  }

  /** Built-in value references. */
  var getPrototype = overArg(Object.getPrototypeOf, Object);

  var getPrototype$1 = getPrototype;

  /** `Object#toString` result references. */
  var objectTag$1 = '[object Object]';

  /** Used for built-in method references. */
  var funcProto = Function.prototype,
      objectProto$2 = Object.prototype;

  /** Used to resolve the decompiled source of functions. */
  var funcToString = funcProto.toString;

  /** Used to check objects for own properties. */
  var hasOwnProperty$2 = objectProto$2.hasOwnProperty;

  /** Used to infer the `Object` constructor. */
  var objectCtorString = funcToString.call(Object);

  /**
   * Checks if `value` is a plain object, that is, an object created by the
   * `Object` constructor or one with a `[[Prototype]]` of `null`.
   *
   * @static
   * @memberOf _
   * @since 0.8.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
   * @example
   *
   * function Foo() {
   *   this.a = 1;
   * }
   *
   * _.isPlainObject(new Foo);
   * // => false
   *
   * _.isPlainObject([1, 2, 3]);
   * // => false
   *
   * _.isPlainObject({ 'x': 0, 'y': 0 });
   * // => true
   *
   * _.isPlainObject(Object.create(null));
   * // => true
   */
  function isPlainObject(value) {
    if (!isObjectLike(value) || baseGetTag(value) != objectTag$1) {
      return false;
    }
    var proto = getPrototype$1(value);
    if (proto === null) {
      return true;
    }
    var Ctor = hasOwnProperty$2.call(proto, 'constructor') && proto.constructor;
    return typeof Ctor == 'function' && Ctor instanceof Ctor &&
      funcToString.call(Ctor) == objectCtorString;
  }

  /* Built-in method references that are verified to be native. */
  var DataView = getNative(root$1, 'DataView');

  var DataView$1 = DataView;

  /* Built-in method references that are verified to be native. */
  var Promise$1 = getNative(root$1, 'Promise');

  var Promise$2 = Promise$1;

  /* Built-in method references that are verified to be native. */
  var Set = getNative(root$1, 'Set');

  var Set$1 = Set;

  /** `Object#toString` result references. */
  var mapTag$1 = '[object Map]',
      objectTag = '[object Object]',
      promiseTag = '[object Promise]',
      setTag$1 = '[object Set]',
      weakMapTag = '[object WeakMap]';

  var dataViewTag = '[object DataView]';

  /** Used to detect maps, sets, and weakmaps. */
  var dataViewCtorString = toSource(DataView$1),
      mapCtorString = toSource(Map$1),
      promiseCtorString = toSource(Promise$2),
      setCtorString = toSource(Set$1),
      weakMapCtorString = toSource(WeakMap$1);

  /**
   * Gets the `toStringTag` of `value`.
   *
   * @private
   * @param {*} value The value to query.
   * @returns {string} Returns the `toStringTag`.
   */
  var getTag = baseGetTag;

  // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.
  if ((DataView$1 && getTag(new DataView$1(new ArrayBuffer(1))) != dataViewTag) ||
      (Map$1 && getTag(new Map$1) != mapTag$1) ||
      (Promise$2 && getTag(Promise$2.resolve()) != promiseTag) ||
      (Set$1 && getTag(new Set$1) != setTag$1) ||
      (WeakMap$1 && getTag(new WeakMap$1) != weakMapTag)) {
    getTag = function(value) {
      var result = baseGetTag(value),
          Ctor = result == objectTag ? value.constructor : undefined,
          ctorString = Ctor ? toSource(Ctor) : '';

      if (ctorString) {
        switch (ctorString) {
          case dataViewCtorString: return dataViewTag;
          case mapCtorString: return mapTag$1;
          case promiseCtorString: return promiseTag;
          case setCtorString: return setTag$1;
          case weakMapCtorString: return weakMapTag;
        }
      }
      return result;
    };
  }

  var getTag$1 = getTag;

  /**
   * The base implementation of `_.hasIn` without support for deep paths.
   *
   * @private
   * @param {Object} [object] The object to query.
   * @param {Array|string} key The key to check.
   * @returns {boolean} Returns `true` if `key` exists, else `false`.
   */
  function baseHasIn(object, key) {
    return object != null && key in Object(object);
  }

  /**
   * Checks if `path` exists on `object`.
   *
   * @private
   * @param {Object} object The object to query.
   * @param {Array|string} path The path to check.
   * @param {Function} hasFunc The function to check properties.
   * @returns {boolean} Returns `true` if `path` exists, else `false`.
   */
  function hasPath(object, path, hasFunc) {
    path = castPath(path, object);

    var index = -1,
        length = path.length,
        result = false;

    while (++index < length) {
      var key = toKey(path[index]);
      if (!(result = object != null && hasFunc(object, key))) {
        break;
      }
      object = object[key];
    }
    if (result || ++index != length) {
      return result;
    }
    length = object == null ? 0 : object.length;
    return !!length && isLength(length) && isIndex(key, length) &&
      (isArray$1(object) || isArguments$1(object));
  }

  /**
   * Checks if `path` is a direct or inherited property of `object`.
   *
   * @static
   * @memberOf _
   * @since 4.0.0
   * @category Object
   * @param {Object} object The object to query.
   * @param {Array|string} path The path to check.
   * @returns {boolean} Returns `true` if `path` exists, else `false`.
   * @example
   *
   * var object = _.create({ 'a': _.create({ 'b': 2 }) });
   *
   * _.hasIn(object, 'a');
   * // => true
   *
   * _.hasIn(object, 'a.b');
   * // => true
   *
   * _.hasIn(object, ['a', 'b']);
   * // => true
   *
   * _.hasIn(object, 'b');
   * // => false
   */
  function hasIn(object, path) {
    return object != null && hasPath(object, path, baseHasIn);
  }

  /**
   * Creates a base function for methods like `_.forIn` and `_.forOwn`.
   *
   * @private
   * @param {boolean} [fromRight] Specify iterating from right to left.
   * @returns {Function} Returns the new base function.
   */
  function createBaseFor(fromRight) {
    return function(object, iteratee, keysFunc) {
      var index = -1,
          iterable = Object(object),
          props = keysFunc(object),
          length = props.length;

      while (length--) {
        var key = props[fromRight ? length : ++index];
        if (iteratee(iterable[key], key, iterable) === false) {
          break;
        }
      }
      return object;
    };
  }

  /**
   * The base implementation of `baseForOwn` which iterates over `object`
   * properties returned by `keysFunc` and invokes `iteratee` for each property.
   * Iteratee functions may exit iteration early by explicitly returning `false`.
   *
   * @private
   * @param {Object} object The object to iterate over.
   * @param {Function} iteratee The function invoked per iteration.
   * @param {Function} keysFunc The function to get the keys of `object`.
   * @returns {Object} Returns `object`.
   */
  var baseFor = createBaseFor();

  var baseFor$1 = baseFor;

  /**
   * The base implementation of `_.forOwn` without support for iteratee shorthands.
   *
   * @private
   * @param {Object} object The object to iterate over.
   * @param {Function} iteratee The function invoked per iteration.
   * @returns {Object} Returns `object`.
   */
  function baseForOwn(object, iteratee) {
    return object && baseFor$1(object, iteratee, keys);
  }

  /**
   * Creates a `baseEach` or `baseEachRight` function.
   *
   * @private
   * @param {Function} eachFunc The function to iterate over a collection.
   * @param {boolean} [fromRight] Specify iterating from right to left.
   * @returns {Function} Returns the new base function.
   */
  function createBaseEach(eachFunc, fromRight) {
    return function(collection, iteratee) {
      if (collection == null) {
        return collection;
      }
      if (!isArrayLike(collection)) {
        return eachFunc(collection, iteratee);
      }
      var length = collection.length,
          index = fromRight ? length : -1,
          iterable = Object(collection);

      while ((fromRight ? index-- : ++index < length)) {
        if (iteratee(iterable[index], index, iterable) === false) {
          break;
        }
      }
      return collection;
    };
  }

  /**
   * The base implementation of `_.forEach` without support for iteratee shorthands.
   *
   * @private
   * @param {Array|Object} collection The collection to iterate over.
   * @param {Function} iteratee The function invoked per iteration.
   * @returns {Array|Object} Returns `collection`.
   */
  var baseEach = createBaseEach(baseForOwn);

  var baseEach$1 = baseEach;

  /**
   * Casts `value` to `identity` if it's not a function.
   *
   * @private
   * @param {*} value The value to inspect.
   * @returns {Function} Returns cast function.
   */
  function castFunction(value) {
    return typeof value == 'function' ? value : identity;
  }

  /**
   * Iterates over elements of `collection` and invokes `iteratee` for each element.
   * The iteratee is invoked with three arguments: (value, index|key, collection).
   * Iteratee functions may exit iteration early by explicitly returning `false`.
   *
   * **Note:** As with other "Collections" methods, objects with a "length"
   * property are iterated like arrays. To avoid this behavior use `_.forIn`
   * or `_.forOwn` for object iteration.
   *
   * @static
   * @memberOf _
   * @since 0.1.0
   * @alias each
   * @category Collection
   * @param {Array|Object} collection The collection to iterate over.
   * @param {Function} [iteratee=_.identity] The function invoked per iteration.
   * @returns {Array|Object} Returns `collection`.
   * @see _.forEachRight
   * @example
   *
   * _.forEach([1, 2], function(value) {
   *   console.log(value);
   * });
   * // => Logs `1` then `2`.
   *
   * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {
   *   console.log(key);
   * });
   * // => Logs 'a' then 'b' (iteration order is not guaranteed).
   */
  function forEach(collection, iteratee) {
    var func = isArray$1(collection) ? arrayEach : baseEach$1;
    return func(collection, castFunction(iteratee));
  }

  /** Used for built-in method references. */
  var objectProto$1 = Object.prototype;

  /** Used to check objects for own properties. */
  var hasOwnProperty$1 = objectProto$1.hasOwnProperty;

  /**
   * The base implementation of `_.has` without support for deep paths.
   *
   * @private
   * @param {Object} [object] The object to query.
   * @param {Array|string} key The key to check.
   * @returns {boolean} Returns `true` if `key` exists, else `false`.
   */
  function baseHas(object, key) {
    return object != null && hasOwnProperty$1.call(object, key);
  }

  /**
   * Checks if `path` is a direct property of `object`.
   *
   * @static
   * @since 0.1.0
   * @memberOf _
   * @category Object
   * @param {Object} object The object to query.
   * @param {Array|string} path The path to check.
   * @returns {boolean} Returns `true` if `path` exists, else `false`.
   * @example
   *
   * var object = { 'a': { 'b': 2 } };
   * var other = _.create({ 'a': _.create({ 'b': 2 }) });
   *
   * _.has(object, 'a');
   * // => true
   *
   * _.has(object, 'a.b');
   * // => true
   *
   * _.has(object, ['a', 'b']);
   * // => true
   *
   * _.has(other, 'a');
   * // => false
   */
  function has(object, path) {
    return object != null && hasPath(object, path, baseHas);
  }

  /** `Object#toString` result references. */
  var stringTag = '[object String]';

  /**
   * Checks if `value` is classified as a `String` primitive or object.
   *
   * @static
   * @since 0.1.0
   * @memberOf _
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is a string, else `false`.
   * @example
   *
   * _.isString('abc');
   * // => true
   *
   * _.isString(1);
   * // => false
   */
  function isString(value) {
    return typeof value == 'string' ||
      (!isArray$1(value) && isObjectLike(value) && baseGetTag(value) == stringTag);
  }

  /** `Object#toString` result references. */
  var mapTag = '[object Map]',
      setTag = '[object Set]';

  /** Used for built-in method references. */
  var objectProto = Object.prototype;

  /** Used to check objects for own properties. */
  var hasOwnProperty = objectProto.hasOwnProperty;

  /**
   * Checks if `value` is an empty object, collection, map, or set.
   *
   * Objects are considered empty if they have no own enumerable string keyed
   * properties.
   *
   * Array-like values such as `arguments` objects, arrays, buffers, strings, or
   * jQuery-like collections are considered empty if they have a `length` of `0`.
   * Similarly, maps and sets are considered empty if they have a `size` of `0`.
   *
   * @static
   * @memberOf _
   * @since 0.1.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is empty, else `false`.
   * @example
   *
   * _.isEmpty(null);
   * // => true
   *
   * _.isEmpty(true);
   * // => true
   *
   * _.isEmpty(1);
   * // => true
   *
   * _.isEmpty([1, 2, 3]);
   * // => false
   *
   * _.isEmpty({ 'a': 1 });
   * // => false
   */
  function isEmpty(value) {
    if (value == null) {
      return true;
    }
    if (isArrayLike(value) &&
        (isArray$1(value) || typeof value == 'string' || typeof value.splice == 'function' ||
          isBuffer$1(value) || isTypedArray$1(value) || isArguments$1(value))) {
      return !value.length;
    }
    var tag = getTag$1(value);
    if (tag == mapTag || tag == setTag) {
      return !value.size;
    }
    if (isPrototype(value)) {
      return !baseKeys(value).length;
    }
    for (var key in value) {
      if (hasOwnProperty.call(value, key)) {
        return false;
      }
    }
    return true;
  }

  /**
   * Checks if `value` is `undefined`.
   *
   * @static
   * @since 0.1.0
   * @memberOf _
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.
   * @example
   *
   * _.isUndefined(void 0);
   * // => true
   *
   * _.isUndefined(null);
   * // => false
   */
  function isUndefined(value) {
    return value === undefined;
  }

  /**
   * The base implementation of `_.set`.
   *
   * @private
   * @param {Object} object The object to modify.
   * @param {Array|string} path The path of the property to set.
   * @param {*} value The value to set.
   * @param {Function} [customizer] The function to customize path creation.
   * @returns {Object} Returns `object`.
   */
  function baseSet(object, path, value, customizer) {
    if (!isObject(object)) {
      return object;
    }
    path = castPath(path, object);

    var index = -1,
        length = path.length,
        lastIndex = length - 1,
        nested = object;

    while (nested != null && ++index < length) {
      var key = toKey(path[index]),
          newValue = value;

      if (key === '__proto__' || key === 'constructor' || key === 'prototype') {
        return object;
      }

      if (index != lastIndex) {
        var objValue = nested[key];
        newValue = customizer ? customizer(objValue, key, nested) : undefined;
        if (newValue === undefined) {
          newValue = isObject(objValue)
            ? objValue
            : (isIndex(path[index + 1]) ? [] : {});
        }
      }
      assignValue(nested, key, newValue);
      nested = nested[key];
    }
    return object;
  }

  /**
   * The base implementation of  `_.pickBy` without support for iteratee shorthands.
   *
   * @private
   * @param {Object} object The source object.
   * @param {string[]} paths The property paths to pick.
   * @param {Function} predicate The function invoked per property.
   * @returns {Object} Returns the new object.
   */
  function basePickBy(object, paths, predicate) {
    var index = -1,
        length = paths.length,
        result = {};

    while (++index < length) {
      var path = paths[index],
          value = baseGet(object, path);

      if (predicate(value, path)) {
        baseSet(result, castPath(path, object), value);
      }
    }
    return result;
  }

  /**
   * The base implementation of `_.pick` without support for individual
   * property identifiers.
   *
   * @private
   * @param {Object} object The source object.
   * @param {string[]} paths The property paths to pick.
   * @returns {Object} Returns the new object.
   */
  function basePick(object, paths) {
    return basePickBy(object, paths, function(value, path) {
      return hasIn(object, path);
    });
  }

  /**
   * Creates an object composed of the picked `object` properties.
   *
   * @static
   * @since 0.1.0
   * @memberOf _
   * @category Object
   * @param {Object} object The source object.
   * @param {...(string|string[])} [paths] The property paths to pick.
   * @returns {Object} Returns the new object.
   * @example
   *
   * var object = { 'a': 1, 'b': '2', 'c': 3 };
   *
   * _.pick(object, ['a', 'c']);
   * // => { 'a': 1, 'c': 3 }
   */
  var pick = flatRest(function(object, paths) {
    return object == null ? {} : basePick(object, paths);
  });

  var pick$1 = pick;

  /** Used to generate unique IDs. */
  var idCounter = 0;

  /**
   * Generates a unique ID. If `prefix` is given, the ID is appended to it.
   *
   * @static
   * @since 0.1.0
   * @memberOf _
   * @category Util
   * @param {string} [prefix=''] The value to prefix the ID with.
   * @returns {string} Returns the unique ID.
   * @example
   *
   * _.uniqueId('contact_');
   * // => 'contact_104'
   *
   * _.uniqueId();
   * // => '105'
   */
  function uniqueId(prefix) {
    var id = ++idCounter;
    return toString(prefix) + id;
  }

  /**
   * Events
   * PC端开发前端：命令处理
   */
  const requestCommand = (payload) => {
      return new Promise((resolve, reject) => {
          // 请求参数
          const request = {
              ...payload,
              jsonrpc: '1.0',
              params: {
                  content: isPlainObject(payload.params) ? payload.params : { value: payload.params },
              },
              type: 'rpc',
              callback: (res) => {
                  if (res.code !== 200) {
                      return reject({
                          code: res.code ?? 50000,
                          message: res.message || '系统错误',
                      });
                  }
                  let data = res.data ?? res.result;
                  // 返回结果有且只有 value
                  if (has(data, 'value') && Object.keys(data).length === 1) {
                      data = data.value;
                  }
                  resolve({
                      code: 200,
                      data,
                      message: 'success',
                  });
              },
          };
          // 命令调用
          window?.JeeWeb?.command(request, request.callback);
          // 命令调用超时
          setTimeout(() => {
              request.callback({
                  code: 50002,
                  message: '命令超时',
              });
          },
          // 如果默认一些长时间的设备，可以给下发的那里配置一下timeout设置属性
          /**自动生成部分json结构体
        "getLiveVideo": {
          "method": "getLiveVideo",
          "methodId": "UiWTUhTz",
          "type": "Number",
          "value": 5000,
          "timeout": 1800
          },
           *
           */
          (payload?.timeout || 10) * 1000);
      });
  };
  /**
   * nodejs层命令处理：后台运行服务体系：cmd
   * @param payload
   * @returns
   */
  const requestMessage = (payload) => {
      return new Promise((resolve, reject) => {
          const id = window?.JeeWeb?.utils?.uuid();
          // 请求参数
          debugger

        // 根据传入的参数
          const request = {
              id,
              appInfo: global.appInfo?global.appInfo:appInfo,
              from: payload.to,
              method:{
                ...payload,
                params: isPlainObject(payload.params) ? payload.params : { value: payload.params },
                message:''
              },
              timestamp: +new Date(),
              type: 'method',
          };
          // TODO:演示环境:TODO:待删除
          // TODO:演示环境:TODO:待删除
        //  request.appInfo.groupId = '7f8d1275-c35d-4a12-aeba-453e3bbc0b99'
          // messageType: 1表示普通的sendMessage，2表示寄居蟹设备的sendMessage
          if(payload.params?.messageType && payload.params?.messageType ==1){
            request.type = 'sendMessage';
            request.method.message = payload.params?.message
          }else if(payload.params?.messageType && payload.params?.messageType ==2){
            request.type = 'sendMessage';
            request.method.method = 'setDevMessage';
            request.method.message = payload.params?.message
          }
          // 消息缓存：nodejs使用，tasks在nodejs中已经全局声明，
          // 缓存消息内容，全局缓存，之前的局部。
          tasks[id] = {
              resolve,
              reject,
              request,
          };
          // 给后台运行小应用命令调用
          parentPort?.postMessage(request);
      });
  };
  /**
   * 命令交互
   *
   * @see http://wiki.devjeejio.com/pages/viewpage.action?pageId=4096443
   */
  const command = (params) => {
      // 判断是不是nodejs平台：requestMessage，否则使用requestCommand
      const request = window?.JeeWeb?.OS === 0x0b ? requestMessage : requestCommand;
      /**
       * Params
       */
      const { to, ...payload } = params;
      console.log(JSON.stringify(payload), '----------payload');
      console.log(JSON.stringify(to), '----------------to');
      // 1.单一设备：对象
      if (isPlainObject(to)) {
          return request({
              ...payload,
              to: to.id,
          });
      }
      // 2.群组设备
      if (isArray$1(to)) {
          const promiseAll = [];
          to.forEach((device) => {
              promiseAll.push(request({
                  ...payload,
                  to: device.id,
              }));
          });
          // allSettled必须全部执行完成后，才会执行。all是全量或竞态
          return Promise.allSettled(promiseAll).then((res) => {
              return res.map((item) => {
                  if (item.status === 'fulfilled') {
                      // 成功：status和value
                      return item.value;
                  }
                  // 失败的结构：status和reason。
                  return item.reason;
              });
          });
      }
      // 3.如果undefined的情况
      return Promise.reject({
          code: 50003,
          message: '设备未绑定',
      });
  };

  /**
   * 自动生成！请勿修改！
   */

  class Light {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010001';
      }

      get categoryName() {
          return '\u706f';
      }

      getAbsoluteBrightness(params) {
          return command({
              method: 'getAbsoluteBrightness',
              methodId: 'pj7xdhPr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getBreathingLightMode(params) {
          return command({
              method: 'getBreathingLightMode',
              methodId: 'UvxDHvvx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColorTemperature(params) {
          return command({
              method: 'getColorTemperature',
              methodId: 'pNnZCUnd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getEyeProtectionMode(params) {
          return command({
              method: 'getEyeProtectionMode',
              methodId: 'UmaSDdhV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getIlluminationMode(params) {
          return command({
              method: 'getIlluminationMode',
              methodId: 'pqYhPCRZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getNightMode(params) {
          return command({
              method: 'getNightMode',
              methodId: 'Unfc4rZS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPowerOffMemory(params) {
          return command({
              method: 'getPowerOffMemory',
              methodId: 'U8O3rNfb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRGB(params) {
          return command({
              method: 'getRGB',
              methodId: 'UaMC8Z03',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRatedPower(params) {
          return command({
              method: 'getRatedPower',
              methodId: 'UODeTLcG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRealTimePower(params) {
          return command({
              method: 'getRealTimePower',
              methodId: 'UCb298Vo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRelativeBrightness(params) {
          return command({
              method: 'getRelativeBrightness',
              methodId: 'pXZuSByA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSaturation(params) {
          return command({
              method: 'getSaturation',
              methodId: 'UfjZYWAR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSceneMode(params) {
          return command({
              method: 'getSceneMode',
              methodId: 'U9KmmJIk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getShiningFrequency(params) {
          return command({
              method: 'getShiningFrequency',
              methodId: 'U5suK2k1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSleepMode(params) {
          return command({
              method: 'getSleepMode',
              methodId: 'pWG0lAxL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pBTQJQJC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitchingGradient(params) {
          return command({
              method: 'getSwitchingGradient',
              methodId: 'URPrUTlq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAbsoluteBrightness(params) {
          return command({
              method: 'setAbsoluteBrightness',
              methodId: 'pUPQQiFz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBreathingLightMode(params) {
          return command({
              method: 'setBreathingLightMode',
              methodId: 'ptRSARIl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColorTemperature(params) {
          return command({
              method: 'setColorTemperature',
              methodId: 'pZgRgHhI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setEyeProtectionMode(params) {
          return command({
              method: 'setEyeProtectionMode',
              methodId: 'pghzV1CM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIlluminationMode(params) {
          return command({
              method: 'setIlluminationMode',
              methodId: 'pGoxuv0E',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setNightMode(params) {
          return command({
              method: 'setNightMode',
              methodId: 'pDrhxkvn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPowerOffMemory(params) {
          return command({
              method: 'setPowerOffMemory',
              methodId: 'pdN7hWk5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setRGB(params) {
          return command({
              method: 'setRGB',
              methodId: 'phEqZolK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setRelativeBrightness(params) {
          return command({
              method: 'setRelativeBrightness',
              methodId: 'ppAXpyHW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSaturation(params) {
          return command({
              method: 'setSaturation',
              methodId: 'p0cXc6sU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSceneMode(params) {
          return command({
              method: 'setSceneMode',
              methodId: 'pkp10gaP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setShiningFrequency(params) {
          return command({
              method: 'setShiningFrequency',
              methodId: 'pz93se6w',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSleepMode(params) {
          return command({
              method: 'setSleepMode',
              methodId: 'p1vFkNc9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXjRR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitchingGradient(params) {
          return command({
              method: 'setSwitchingGradient',
              methodId: 'p3de6zVm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class PowerSocket {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010002';
      }

      get categoryName() {
          return '\u63d2\u5ea7';
      }

      getCurrentElectricity(params) {
          return command({
              method: 'getCurrentElectricity',
              methodId: 'p0cXc6eA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentPower(params) {
          return command({
              method: 'getCurrentPower',
              methodId: 'pz93se7C',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentVoltage(params) {
          return command({
              method: 'getCurrentVoltage',
              methodId: 'pBTQJQ1r',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getElectricityStatistics(params) {
          return command({
              method: 'getElectricityStatistics',
              methodId: 'pXZuSB3d',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFullPowerOffStatus(params) {
          return command({
              method: 'getFullPowerOffStatus',
              methodId: 'UmaSDdtG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFullPowerOffSwitch(params) {
          return command({
              method: 'getFullPowerOffSwitch',
              methodId: 'pWG0lA2V',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getIndicatorMode(params) {
          return command({
              method: 'getIndicatorMode',
              methodId: 'pkp10gOU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getIndicatorSwitch(params) {
          return command({
              method: 'getIndicatorSwitch',
              methodId: 'p3de6zNw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getInfraredControlSwitch(params) {
          return command({
              method: 'getInfraredControlSwitch',
              methodId: 'pqYhPC9S',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOverloadProtectionStatus(params) {
          return command({
              method: 'getOverloadProtectionStatus',
              methodId: 'UaMC8ZBx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOverloadProtectionSwitch(params) {
          return command({
              method: 'getOverloadProtectionSwitch',
              methodId: 'Unfc4ri3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPowerOffMemorySwitch(params) {
          return command({
              method: 'getPowerOffMemorySwitch',
              methodId: 'pdN7hWYP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPowerOnState(params) {
          return command({
              method: 'getPowerOnState',
              methodId: 'UvxDHvbq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ptRSARKm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getVoiceCommandInfo(params) {
          return command({
              method: 'getVoiceCommandInfo',
              methodId: 'pj7xdhrZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getVoiceControlSwitch(params) {
          return command({
              method: 'getVoiceControlSwitch',
              methodId: 'pNnZCUmL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFullPowerOffSwitch(params) {
          return command({
              method: 'setFullPowerOffSwitch',
              methodId: 'pghzV1Ll',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIndicatorMode(params) {
          return command({
              method: 'setIndicatorMode',
              methodId: 'pGoxuvBn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIndicatorSwitch(params) {
          return command({
              method: 'setIndicatorSwitch',
              methodId: 'pZgRgHt9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setInfraredControlSwitch(params) {
          return command({
              method: 'setInfraredControlSwitch',
              methodId: 'p1vFkNWM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setOverloadProtectionSwitch(params) {
          return command({
              method: 'setOverloadProtectionSwitch',
              methodId: 'phEqZoU5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPowerOffMemorySwitch(params) {
          return command({
              method: 'setPowerOffMemorySwitch',
              methodId: 'ppAXpy2I',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPowerOnState(params) {
          return command({
              method: 'setPowerOnState',
              methodId: 'pUPQQiiE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXjuz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setVoiceControlSwitch(params) {
          return command({
              method: 'setVoiceControlSwitch',
              methodId: 'pDrhxkbK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class OnewayDrawCurtain {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010003';
      }

      get categoryName() {
          return '\u5355\u5f00\u7a97\u5e18';
      }

      getCurrentPosition(params) {
          return command({
              method: 'getCurrentPosition',
              methodId: 'pDrhxkR5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMotorDirection(params) {
          return command({
              method: 'getMotorDirection',
              methodId: 'ptRSARhw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSelfStarting(params) {
          return command({
              method: 'getSelfStarting',
              methodId: 'pghzV1xm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGoxuvPK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetPosition(params) {
          return command({
              method: 'getTargetPosition',
              methodId: 'p1vFkqnl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'phEqZoFP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMotorDirection(params) {
          return command({
              method: 'setMotorDirection',
              methodId: 'pZgRgHdM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSelfStarting(params) {
          return command({
              method: 'setSelfStarting',
              methodId: 'pUPQQiJn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXj6E',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetPosition(params) {
          return command({
              method: 'setTargetPosition',
              methodId: 'ppAXpys9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SceneSwitch {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010006';
      }

      get categoryName() {
          return '\u573a\u666f\u5f00\u5173';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXpyUm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXjL5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartElectricMeter {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010007';
      }

      get categoryName() {
          return '\u667a\u80fd\u7535\u8868';
      }

      getBalanceMoney(params) {
          return command({
              method: 'getBalanceMoney',
              methodId: 'pghzV1lZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getChargeMoney(params) {
          return command({
              method: 'getChargeMoney',
              methodId: 'pDrhxkCd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentElectricity(params) {
          return command({
              method: 'getCurrentElectricity',
              methodId: 'ptRSARkS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentPower(params) {
          return command({
              method: 'getCurrentPower',
              methodId: 'phEqZoIL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentVoltage(params) {
          return command({
              method: 'getCurrentVoltage',
              methodId: 'pdN7hWjV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDayEnergy(params) {
          return command({
              method: 'getDayEnergy',
              methodId: 'p1vFkqSr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMonthEnergyg(params) {
          return command({
              method: 'getMonthEnergyg',
              methodId: 'pGoxuvcA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQQihU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTotalEnergy(params) {
          return command({
              method: 'getTotalEnergy',
              methodId: 'pZgRgH0C',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setChargeMoney(params) {
          return command({
              method: 'setChargeMoney',
              methodId: 'ppAXpyFw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXjHP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartWaterMeter {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010008';
      }

      get categoryName() {
          return '\u667a\u80fd\u6c34\u8868';
      }

      getBalanceMoney(params) {
          return command({
              method: 'getBalanceMoney',
              methodId: 'pghzV1US',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getChargeMoney(params) {
          return command({
              method: 'getChargeMoney',
              methodId: 'pDrhxkLL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDayWater(params) {
          return command({
              method: 'getDayWater',
              methodId: 'p1vFkqbZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMonthWater(params) {
          return command({
              method: 'getMonthWater',
              methodId: 'pGoxuvWd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQQitA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTotalWater(params) {
          return command({
              method: 'getTotalWater',
              methodId: 'pZgRgHMr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setChargeMoney(params) {
          return command({
              method: 'setChargeMoney',
              methodId: 'ppAXpyiC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXj2U',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class CeilingFanLamp {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010011';
      }

      get categoryName() {
          return '\u540a\u6247\u706f';
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'p1vFkq6x',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFanSpeed(params) {
          return command({
              method: 'getFanSpeed',
              methodId: 'pghzV1Gq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFanSwitch(params) {
          return command({
              method: 'getFanSwitch',
              methodId: 'pDrhxksb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLightMode(params) {
          return command({
              method: 'getLightMode',
              methodId: 'phEqZodk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLightSwitch(params) {
          return command({
              method: 'getLightSwitch',
              methodId: 'ptRSARP1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'peHyXjlL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFanSpeed(params) {
          return command({
              method: 'setFanSpeed',
              methodId: 'pUPQQiTV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFanSwitch(params) {
          return command({
              method: 'setFanSwitch',
              methodId: 'ppAXpyIS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLightMode(params) {
          return command({
              method: 'setLightMode',
              methodId: 'pZgRgHj3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLightSwitch(params) {
          return command({
              method: 'setLightSwitch',
              methodId: 'pGoxubaG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class DoubleOpeningCurtain {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010017';
      }

      get categoryName() {
          return '\u53cc\u5f00\u7a97\u5e18';
      }

      getAutoStartSwitch(params) {
          return command({
              method: 'getAutoStartSwitch',
              methodId: 'phEqZoPl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLeftPosition(params) {
          return command({
              method: 'getLeftPosition',
              methodId: 'pDrhxkGM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRightPosition(params) {
          return command({
              method: 'getRightPosition',
              methodId: 'pghzV1dK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vFkqsn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAutoStartSwitch(params) {
          return command({
              method: 'setAutoStartSwitch',
              methodId: 'pZgRgxaE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLeftPosition(params) {
          return command({
              method: 'setLeftPosition',
              methodId: 'ppAXpyTz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setRightPosition(params) {
          return command({
              method: 'setRightPosition',
              methodId: 'pUPQQijI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXjDW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setToDefault(params) {
          return command({
              method: 'setToDefault',
              methodId: 'pGoxub69',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SingleButtonSwitch {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010018';
      }

      get categoryName() {
          return '\u5355\u6309\u952e\u5f00\u5173';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'peHyXjgI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTriggerModality(params) {
          return command({
              method: 'getTriggerModality',
              methodId: 'ppAXpyYE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class MultiButtonSwitch {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010019';
      }

      get categoryName() {
          return '\u591a\u6309\u952e\u5f00\u5173';
      }

      getReceiverStatus(params) {
          return command({
              method: 'getReceiverStatus',
              methodId: 'pUPQQiqM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTransmitterStatus(params) {
          return command({
              method: 'getTransmitterStatus',
              methodId: 'ppAXpy0n',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setReceiverStatus(params) {
          return command({
              method: 'setReceiverStatus',
              methodId: 'peHyXjh9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartPowerStrip {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010020';
      }

      get categoryName() {
          return '\u667a\u80fd\u5206\u63a7\u63d2\u6392';
      }

      getElectricalData(params) {
          return command({
              method: 'getElectricalData',
              methodId: 'pGoxubLm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getIndividualElectricalData(params) {
          return command({
              method: 'getIndividualElectricalData',
              methodId: 'p1vFkqpP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getIndividualSwitch(params) {
          return command({
              method: 'getIndividualSwitch',
              methodId: 'pZgRgxb5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQQiWl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIndividualSwitch(params) {
          return command({
              method: 'setIndividualSwitch',
              methodId: 'ppAXpyMK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXjwM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartWindow {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010021';
      }

      get categoryName() {
          return '\u667a\u80fd\u7a97';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXpyP5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXjdl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class VoiceActivatedSwitch {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010022';
      }

      get categoryName() {
          return '\u58f0\u63a7\u5f00\u5173';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQQGQw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getThreshold(params) {
          return command({
              method: 'getThreshold',
              methodId: 'pZgRgxuU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXj3m',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setThreshold(params) {
          return command({
              method: 'setThreshold',
              methodId: 'ppAXpyXP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartSwitch {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010023';
      }

      get categoryName() {
          return '\u667a\u80fd\u5f00\u5173';
      }

      getSwitchStatus(params) {
          return command({
              method: 'getSwitchStatus',
              methodId: 'pZgRgx6A',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTriggerMethod(params) {
          return command({
              method: 'getTriggerMethod',
              methodId: 'pGoxubor',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWirelessStatus(params) {
          return command({
              method: 'getWirelessStatus',
              methodId: 'p1vFkqGd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStatus(params) {
          return command({
              method: 'setStatus',
              methodId: 'peHyXjTw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTriggerMethod(params) {
          return command({
              method: 'setTriggerMethod',
              methodId: 'ppAXpyjU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWirelessStatus(params) {
          return command({
              method: 'setWirelessStatus',
              methodId: 'pUPQQGaC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class LightStrip {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010024';
      }

      get categoryName() {
          return '\u706f\u5e26';
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'pdN7w42x',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFlashDuration(params) {
          return command({
              method: 'getFlashDuration',
              methodId: 'pghzV1XV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFlashTimes(params) {
          return command({
              method: 'getFlashTimes',
              methodId: 'ptRSAuuG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRgbColor(params) {
          return command({
              method: 'getRgbColor',
              methodId: 'p1vFkq1L',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pDrhxk3S',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'pGoxubEZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFlashDuration(params) {
          return command({
              method: 'setFlashDuration',
              methodId: 'pUPQQGAr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFlashTimes(params) {
          return command({
              method: 'setFlashTimes',
              methodId: 'pZgRgx5d',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setRgbColor(params) {
          return command({
              method: 'setRgbColor',
              methodId: 'peHyXjYC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAXpyNA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartGasMeter {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010026';
      }

      get categoryName() {
          return '\u667a\u80fd\u6c14\u8868';
      }

      getBalanceMoney(params) {
          return command({
              method: 'getBalanceMoney',
              methodId: 'pghzV1Nb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getChargeMoney(params) {
          return command({
              method: 'getChargeMoney',
              methodId: 'pDrhxkYx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDayGas(params) {
          return command({
              method: 'getDayGas',
              methodId: 'p1vFkqgG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMonthGas(params) {
          return command({
              method: 'getMonthGas',
              methodId: 'pGoxubp3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQQGbS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTotalGas(params) {
          return command({
              method: 'getTotalGas',
              methodId: 'pZgRgxfV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setChargeMoney(params) {
          return command({
              method: 'setChargeMoney',
              methodId: 'ppAXpyWL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXjMZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class PowerTransformer {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010027';
      }

      get categoryName() {
          return '\u7535\u6e90\u53d8\u538b\u5668';
      }

      getCurrentElectricity(params) {
          return command({
              method: 'getCurrentElectricity',
              methodId: 'pGoxubFx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentPower(params) {
          return command({
              method: 'getCurrentPower',
              methodId: 'pZgRgxHG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentVoltage(params) {
          return command({
              method: 'getCurrentVoltage',
              methodId: 'p1vFkqhb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getEnergy(params) {
          return command({
              method: 'getEnergy',
              methodId: 'pUPQQG83',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXp34V',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXjPS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class DeskLamp {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010031';
      }

      get categoryName() {
          return '\u53f0\u706f';
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'pDrhxkjE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColorTemperature(params) {
          return command({
              method: 'getColorTemperature',
              methodId: 'pGoxubDz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p1vFkqTI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pghzVDa9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'pUPQQGCR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColorTemperature(params) {
          return command({
              method: 'setColorTemperature',
              methodId: 'peHyXjq1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXp3So',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pZgRgxeW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class MedicalLamp {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010032';
      }

      get categoryName() {
          return '\u533b\u7528\u706f';
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'pUPQQGfz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pZgRgxpI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'peHyXjWR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAXp3vW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartDimmer {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010033';
      }

      get categoryName() {
          return '\u667a\u80fd\u8c03\u5149\u5668';
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'pUPQQGHE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pZgRgxF9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'peHyXV4z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAXp38I',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class CeilingLight {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010034';
      }

      get categoryName() {
          return '\u5438\u9876\u706f';
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'phEqZsfP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColor(params) {
          return command({
              method: 'getColor',
              methodId: 'p1vFkqMl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColorTemperature(params) {
          return command({
              method: 'getColorTemperature',
              methodId: 'pDrhxkW5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pghzVDbm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ptRSAupw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'pZgRgxZM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColor(params) {
          return command({
              method: 'setColor',
              methodId: 'peHyXVQE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColorTemperature(params) {
          return command({
              method: 'setColorTemperature',
              methodId: 'ppAXp3u9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pUPQQG2n',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pGoxubwK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class AmbientLight {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010035';
      }

      get categoryName() {
          return '\u6c1b\u56f4\u706f';
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'phEqZsHU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColor(params) {
          return command({
              method: 'getColor',
              methodId: 'p1vFkqPm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColorTemperature(params) {
          return command({
              method: 'getColorTemperature',
              methodId: 'pDrhxY4P',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pghzVD8w',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ptRSAuFC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'pZgRgxGl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColor(params) {
          return command({
              method: 'setColor',
              methodId: 'peHyXVan',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColorTemperature(params) {
          return command({
              method: 'setColorTemperature',
              methodId: 'ppAXp39M',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pUPQQGoK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pGoxubd5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class LightBulb {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010036';
      }

      get categoryName() {
          return '\u706f\u6ce1';
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'phEqZs2A',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColor(params) {
          return command({
              method: 'getColor',
              methodId: 'p1vFkqXw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColorTemperature(params) {
          return command({
              method: 'getColorTemperature',
              methodId: 'pDrhxYQU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pghzVDuC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ptRSAuZr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'pZgRgx1m',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColor(params) {
          return command({
              method: 'setColor',
              methodId: 'peHyXVAK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColorTemperature(params) {
          return command({
              method: 'setColorTemperature',
              methodId: 'ppAXp35l',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pUPQQGE5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pGoxubyP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class WallLamp {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010037';
      }

      get categoryName() {
          return '\u58c1\u706f';
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'phEqZsod',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColor(params) {
          return command({
              method: 'getColor',
              methodId: 'p1vFkqjC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColorTemperature(params) {
          return command({
              method: 'getColorTemperature',
              methodId: 'pDrhxYaA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pghzVD9r',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ptRSAuGZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'pZgRgxDw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColor(params) {
          return command({
              method: 'setColor',
              methodId: 'peHyXVS5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColorTemperature(params) {
          return command({
              method: 'setColorTemperature',
              methodId: 'ppAXp3Cm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pUPQQGeP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pGoxubTU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class Downlight {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010038';
      }

      get categoryName() {
          return '\u7b52\u706f';
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'phEqZsEL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColor(params) {
          return command({
              method: 'getColor',
              methodId: 'p1vFkqVr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColorTemperature(params) {
          return command({
              method: 'getColorTemperature',
              methodId: 'pDrhxYAd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pghzVD5Z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ptRSAu1S',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'pZgRgxgC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColor(params) {
          return command({
              method: 'setColor',
              methodId: 'peHyXVvP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColorTemperature(params) {
          return command({
              method: 'setColorTemperature',
              methodId: 'ppAXp3fw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pUPQQGpU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pGoxubYA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class Spotlight {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010039';
      }

      get categoryName() {
          return '\u5c04\u706f';
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'phEqZseV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColor(params) {
          return command({
              method: 'getColor',
              methodId: 'p1vFkqqZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColorTemperature(params) {
          return command({
              method: 'getColorTemperature',
              methodId: 'pDrhxYSL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pghzVDCS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ptRSAuD3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'pZgRgxKr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColor(params) {
          return command({
              method: 'setColor',
              methodId: 'peHyXV8U',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColorTemperature(params) {
          return command({
              method: 'setColorTemperature',
              methodId: 'ppAXp3HC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pUPQQGFA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pGoxubzd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class MagneticLight {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010040';
      }

      get categoryName() {
          return '\u78c1\u5438\u706f';
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'phEqZspG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColor(params) {
          return command({
              method: 'getColor',
              methodId: 'p1vFkqWS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColorTemperature(params) {
          return command({
              method: 'getColorTemperature',
              methodId: 'pDrhxYvV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pghzVDf3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ptRSAugx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'pZgRgxwZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColor(params) {
          return command({
              method: 'setColor',
              methodId: 'peHyXVuA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColorTemperature(params) {
          return command({
              method: 'setColorTemperature',
              methodId: 'ppAXp3xr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pUPQQGZd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pGoxubML',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class CandleLight {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010041';
      }

      get categoryName() {
          return '\u8721\u70db\u706f';
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'phEqZsFb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColor(params) {
          return command({
              method: 'getColor',
              methodId: 'p1vFkc43',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColorTemperature(params) {
          return command({
              method: 'getColorTemperature',
              methodId: 'pDrhxY8G',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pghzVDHx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ptRSAuKq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'pZgRgxdS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColor(params) {
          return command({
              method: 'setColor',
              methodId: 'peHyXV9d',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColorTemperature(params) {
          return command({
              method: 'setColorTemperature',
              methodId: 'ppAXp3oZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pUPQQGGL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pGoxubBV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class FloorLamp {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010042';
      }

      get categoryName() {
          return '\u843d\u5730\u706f';
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'phEqZsZk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColor(params) {
          return command({
              method: 'getColor',
              methodId: 'p1vFkcQx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColorTemperature(params) {
          return command({
              method: 'getColorTemperature',
              methodId: 'pDrhxYub',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pghzVDxq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ptRSAuw1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'pZgRgxy3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColor(params) {
          return command({
              method: 'setColor',
              methodId: 'peHyXV5L',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColorTemperature(params) {
          return command({
              method: 'setColorTemperature',
              methodId: 'ppAXp3ES',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pUPQQGJV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pGoxubXG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class IndustrialandMiningLamp {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010044';
      }

      get categoryName() {
          return '\u5de5\u77ff\u706f';
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'pDrhxY5o',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColorTemperature(params) {
          return command({
              method: 'getColorTemperature',
              methodId: 'pGoxubVk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p1vFkcA1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pghzVDER',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'pUPQQGgb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColorTemperature(params) {
          return command({
              method: 'setColorTemperature',
              methodId: 'peHyXVfG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXp3px',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pZgRgxkq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class StarProjectorLight {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010045';
      }

      get categoryName() {
          return '\u661f\u7a7a\u6295\u5f71\u706f';
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'phEqZsDI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColor(params) {
          return command({
              method: 'getColor',
              methodId: 'p1vFkcSR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColorTemperature(params) {
          return command({
              method: 'getColorTemperature',
              methodId: 'pDrhxY7W',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pghzVDez',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ptRSAuTE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'pZgRgxz1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColor(params) {
          return command({
              method: 'setColor',
              methodId: 'peHyXVHb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColorTemperature(params) {
          return command({
              method: 'setColorTemperature',
              methodId: 'ppAXp3Uq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pUPQQGKk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pGoxubqo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class CampingLantern {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010046';
      }

      get categoryName() {
          return '\u9732\u8425\u706f';
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'pDrhxYfI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColorTemperature(params) {
          return command({
              method: 'getColorTemperature',
              methodId: 'pGoxubcW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p1vFkcvz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pghzVDpE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'pUPQQGwo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColorTemperature(params) {
          return command({
              method: 'setColorTemperature',
              methodId: 'peHyXVxk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXp3Z1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pZgRgxMR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class StreetLight {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010047';
      }

      get categoryName() {
          return '\u8def\u706f';
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'pDrhxYH9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColorTemperature(params) {
          return command({
              method: 'getColorTemperature',
              methodId: 'pGoxu84I',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p1vFkc8E',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pghzVDFn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'pUPQQGtW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColorTemperature(params) {
          return command({
              method: 'setColorTemperature',
              methodId: 'peHyXVoo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXp3GR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pZgRgxBz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class RotaryRemoteControl {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010048';
      }

      get categoryName() {
          return '\u65cb\u94ae\u9065\u63a7\u5668';
      }

      getRotation(params) {
          return command({
              method: 'getRotation',
              methodId: 'pUPQQGyI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pZgRgxXE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setRotation(params) {
          return command({
              method: 'setRotation',
              methodId: 'peHyXVsW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAXp3Jz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class LightingController {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010049';
      }

      get categoryName() {
          return '\u7167\u660e\u63a7\u5236\u5668';
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'pDrhxYol',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColorTemperature(params) {
          return command({
              method: 'getColorTemperature',
              methodId: 'pGoxu8mM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p1vFkc9K',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pghzVDG5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'pUPQQGT9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColorTemperature(params) {
          return command({
              method: 'setColorTemperature',
              methodId: 'peHyXVeI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXp3DE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pZgRgxjn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class WallSocket {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010050';
      }

      get categoryName() {
          return '\u5899\u58c1\u63d2\u5ea7';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXp3gn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXVp9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class AirConditionerCompanion {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010051';
      }

      get categoryName() {
          return '\u7a7a\u8c03\u4f34\u4fa3';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXp3KK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXVUM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class DimmingSocket {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010052';
      }

      get categoryName() {
          return '\u8c03\u5149\u63d2\u5ea7';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXp3w5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXVZl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class TemperatureControlSocket {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010053';
      }

      get categoryName() {
          return '\u6e29\u63a7\u63d2\u5ea7';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXp3tP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXVGm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class DimmerSwitch {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010054';
      }

      get categoryName() {
          return '\u8c03\u5149\u5f00\u5173';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXp3yU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXVJw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class PanelSwitch {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010055';
      }

      get categoryName() {
          return '\u9762\u677f\u5f00\u5173';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXp3TA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXVDC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class DimmingandControlSwitch {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010056';
      }

      get categoryName() {
          return '\u8c03\u5149\u901a\u65ad\u5668';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXp3kd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXVIr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class CourtyardGateController {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010057';
      }

      get categoryName() {
          return '\u5ead\u9662\u95e8\u63a7\u5236\u5668';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXp3zL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXVKZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class RollerShutterDoorController {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010058';
      }

      get categoryName() {
          return '\u5377\u5e18\u95e8\u63a7\u5236\u5668';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXp30V',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXVwS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class FanSwitch {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010060';
      }

      get categoryName() {
          return '\u98ce\u6247\u5f00\u5173';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXp3Xb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXVyx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class CurtainSwitch {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010061';
      }

      get categoryName() {
          return '\u7a97\u5e18\u5f00\u5173';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXp3rk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXV3q',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class WirelessSwitch {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010062';
      }

      get categoryName() {
          return '\u65e0\u7ebf\u5f00\u5173';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXp3Vo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXVk1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class EmergencyButton {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010063';
      }

      get categoryName() {
          return '\u7d27\u6025\u6309\u94ae';
      }

      getStatus(params) {
          return command({
              method: 'getStatus',
              methodId: 'ppAXp3NW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSos(params) {
          return command({
              method: 'setSos',
              methodId: 'peHyXVzR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class RotarySwitch {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010064';
      }

      get categoryName() {
          return '\u65cb\u94ae\u5f00\u5173';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXp3cI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXV0z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class LightSensorSwitch {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010066';
      }

      get categoryName() {
          return '\u5149\u611f\u5f00\u5173';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXpTnM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXVXn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class GarageDoorController {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010068';
      }

      get categoryName() {
          return '\u8f66\u5e93\u95e8\u63a7\u5236\u5668';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXpTAm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXVV5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class WaterValveController {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010069';
      }

      get categoryName() {
          return '\u6c34\u9600\u63a7\u5236\u5668';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXpTOw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXVNP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SpeedControlSwitch {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010070';
      }

      get categoryName() {
          return '\u8c03\u901f\u901a\u65ad\u5668';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXpTvC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXVcU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class LightTube {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010071';
      }

      get categoryName() {
          return '\u706f\u7ba1';
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'p1vFkczS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColorTemperature(params) {
          return command({
              method: 'getColorTemperature',
              methodId: 'pDrhxYNV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pghzVIO3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGoxu8KL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'ppAXpTbr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColorTemperature(params) {
          return command({
              method: 'setColorTemperature',
              methodId: 'pUPQQJLd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pZgRg2UZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXN4A',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class LightString {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010072';
      }

      get categoryName() {
          return '\u706f\u4e32';
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'pDrhxYcG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColor(params) {
          return command({
              method: 'getColor',
              methodId: 'ptRSA9lq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColorTemperature(params) {
          return command({
              method: 'getColorTemperature',
              methodId: 'pghzVIvx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'phEqZEfb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vFkc03',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'ppAXpTRZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColor(params) {
          return command({
              method: 'setColor',
              methodId: 'pGoxu8hV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColorTemperature(params) {
          return command({
              method: 'setColorTemperature',
              methodId: 'pUPQQJxL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pZgRg2ZS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXNnd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class VenetianBlindMotor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010010073';
      }

      get categoryName() {
          return '\u767e\u53f6\u5e18\u7535\u673a';
      }

      getRange(params) {
          return command({
              method: 'getRange',
              methodId: 'pZgRg2i3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQQJ2V',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setRange(params) {
          return command({
              method: 'setRange',
              methodId: 'ppAXpT9S',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyXNmL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class WaterVolumeSensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020004';
      }

      get categoryName() {
          return '\u6c34\u91cf\u4f20\u611f\u5668';
      }

      getAlarmStatus(params) {
          return command({
              method: 'getAlarmStatus',
              methodId: 'pDrhEqxr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAlarmSwitch(params) {
          return command({
              method: 'getAlarmSwitch',
              methodId: 'p1vFBbuA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAlarmThreshold(params) {
          return command({
              method: 'getAlarmThreshold',
              methodId: 'phEq11wZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFlowDuration(params) {
          return command({
              method: 'getFlowDuration',
              methodId: 'pGox7xQC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFlowRate(params) {
          return command({
              method: 'getFlowRate',
              methodId: 'pZgRtiXU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWaterVolume(params) {
          return command({
              method: 'getWaterVolume',
              methodId: 'pUPQOyyw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAlarmSwitch(params) {
          return command({
              method: 'setAlarmSwitch',
              methodId: 'peHyqOEm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAlarmThreshold(params) {
          return command({
              method: 'setAlarmThreshold',
              methodId: 'ppAXijJP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class IlluminationSensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020005';
      }

      get categoryName() {
          return '\u5149\u7167\u5f3a\u5ea6\u4f20\u611f\u5668';
      }

      getAlarmStatus(params) {
          return command({
              method: 'getAlarmStatus',
              methodId: 'pZgRtijA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getIlluminationStrength(params) {
          return command({
              method: 'getIlluminationStrength',
              methodId: 'ppAXijDU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getIlluminationThreshold(params) {
          return command({
              method: 'getIlluminationThreshold',
              methodId: 'pUPQOyTC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIlluminationThreshold(params) {
          return command({
              method: 'setIlluminationThreshold',
              methodId: 'peHyqOew',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class FloodSensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020007';
      }

      get categoryName() {
          return '\u6d78\u6c34\u4f20\u611f\u5668';
      }

      getPreventRemoveAlarm(params) {
          return command({
              method: 'getPreventRemoveAlarm',
              methodId: 'pDrhEqe3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWaterAlarm(params) {
          return command({
              method: 'getWaterAlarm',
              methodId: 'p1vFBb7V',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWaterAlarmSwitch(params) {
          return command({
              method: 'getWaterAlarmSwitch',
              methodId: 'pGox7xSS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWaterStatus(params) {
          return command({
              method: 'getWaterStatus',
              methodId: 'pZgRtiqL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPreventRemoveAlarmOff(params) {
          return command({
              method: 'setPreventRemoveAlarmOff',
              methodId: 'pUPQOyzZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWaterAlarmOff(params) {
          return command({
              method: 'setWaterAlarmOff',
              methodId: 'ppAXijKd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWaterAlarmSwitch(params) {
          return command({
              method: 'setWaterAlarmSwitch',
              methodId: 'peHyqOUr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartDoorLock {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020008';
      }

      get categoryName() {
          return '\u667a\u80fd\u95e8\u9501';
      }

      getStatus(params) {
          return command({
              method: 'getStatus',
              methodId: 'ppAXijwL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getUnlockRecord(params) {
          return command({
              method: 'getUnlockRecord',
              methodId: 'pUPQOyMS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setUnlock(params) {
          return command({
              method: 'setUnlock',
              methodId: 'peHyqOZZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartVideoDoorbell {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020011';
      }

      get categoryName() {
          return '\u667a\u80fd\u53ef\u89c6\u95e8\u94c3';
      }

      getCameraSwitch(params) {
          return command({
              method: 'getCameraSwitch',
              methodId: 'U5sud183',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDetectionSensitivity(params) {
          return command({
              method: 'getDetectionSensitivity',
              methodId: 'UHwweWhb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDoorbellAudio(params) {
          return command({
              method: 'getDoorbellAudio',
              methodId: 'UCb2CoHG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDoorbellStatus(params) {
          return command({
              method: 'getDoorbellStatus',
              methodId: 'pWG0ZCTU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFrontMotionAlarm(params) {
          return command({
              method: 'getFrontMotionAlarm',
              methodId: 'UnfcAAjC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getIndoorMicSwitch(params) {
          return command({
              method: 'getIndoorMicSwitch',
              methodId: 'U8O3cvdL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getIndoorSpeakerSwitch(params) {
          return command({
              method: 'getIndoorSpeakerSwitch',
              methodId: 'URPrGNPS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getIndoorSpeakerVolume(params) {
          return command({
              method: 'getIndoorSpeakerVolume',
              methodId: 'U9KmSk4V',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getInfraredNightVision(params) {
          return command({
              method: 'getInfraredNightVision',
              methodId: 'UJTjmpjI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLiveShot(params) {
          return command({
              method: 'getLiveShot',
              methodId: 'UDimKCaE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLiveVideo(params) {
          return command({
              method: 'getLiveVideo',
              methodId: 'UiWTUhTz',
              params,
              to: this.to?.[this.i] || this.to,
              timeout: 1800,
          });
      }

      getOutdoorMicSwitch(params) {
          return command({
              method: 'getOutdoorMicSwitch',
              methodId: 'UaMC6y9r',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOutdoorSpeakerSwitch(params) {
          return command({
              method: 'getOutdoorSpeakerSwitch',
              methodId: 'UODe0iod',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOutdoorSpeakerVolume(params) {
          return command({
              method: 'getOutdoorSpeakerVolume',
              methodId: 'UvxDsHGZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRecord(params) {
          return command({
              method: 'getRecord',
              methodId: 'UZ6DrBDW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getShot(params) {
          return command({
              method: 'getShot',
              methodId: 'UlyCT6Co',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTalkbackSwitch(params) {
          return command({
              method: 'getTalkbackSwitch',
              methodId: 'UmaShjaA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTamperAlarmStatus(params) {
          return command({
              method: 'getTamperAlarmStatus',
              methodId: 'UsRcDIqk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTamperAlarmSwitch(params) {
          return command({
              method: 'getTamperAlarmSwitch',
              methodId: 'U2eM4zzq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkingMode(params) {
          return command({
              method: 'getWorkingMode',
              methodId: 'UfjZPRFx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCameraSwitch(params) {
          return command({
              method: 'setCameraSwitch',
              methodId: 'pghzWktW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDetectionSensitivity(params) {
          return command({
              method: 'setDetectionSensitivity',
              methodId: 'pdN73u8E',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDoorbellAudio(params) {
          return command({
              method: 'setDoorbellAudio',
              methodId: 'phEq11Bz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setEndCall(params) {
          return command({
              method: 'setEndCall',
              methodId: 'pz93pgKM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIndoorMicSwitch(params) {
          return command({
              method: 'setIndoorMicSwitch',
              methodId: 'pGox7x91',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIndoorSpeakerSwitch(params) {
          return command({
              method: 'setIndoorSpeakerSwitch',
              methodId: 'p1vFBboo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIndoorSpeakerVolume(params) {
          return command({
              method: 'setIndoorSpeakerVolume',
              methodId: 'pDrhEqGR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setInfraredNightVision(params) {
          return command({
              method: 'setInfraredNightVision',
              methodId: 'UUUlHQlR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setOutdoorMicSwitch(params) {
          return command({
              method: 'setOutdoorMicSwitch',
              methodId: 'ppAXijTb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setOutdoorSpeakerSwitch(params) {
          return command({
              method: 'setOutdoorSpeakerSwitch',
              methodId: 'pUPQOyrq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setOutdoorSpeakerVolume(params) {
          return command({
              method: 'setOutdoorSpeakerVolume',
              methodId: 'pZgRtGmk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStartCall(params) {
          return command({
              method: 'setStartCall',
              methodId: 'pkp1X0Fn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStartReceiveVideo(params) {
          return command({
              method: 'setStartReceiveVideo',
              methodId: 'pNnZxweP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStartReceiveVoice(params) {
          return command({
              method: 'setStartReceiveVoice',
              methodId: 'pXZuumS5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStartSendVoice(params) {
          return command({
              method: 'setStartSendVoice',
              methodId: 'p0crQezK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStopReceiveVideo(params) {
          return command({
              method: 'setStopReceiveVideo',
              methodId: 'pqYhVUDw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStopReceiveVoice(params) {
          return command({
              method: 'setStopReceiveVoice',
              methodId: 'pj7xkPCm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStopSendVoice(params) {
          return command({
              method: 'setStopSendVoice',
              methodId: 'pBTQg6ql',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTalkbackSwitch(params) {
          return command({
              method: 'setTalkbackSwitch',
              methodId: 'peHyqODx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTamperAlarmSwitch(params) {
          return command({
              method: 'setTamperAlarmSwitch',
              methodId: 'p3deL4H9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWorkingMode(params) {
          return command({
              method: 'setWorkingMode',
              methodId: 'ptRSbs4I',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartCircuitBreaker {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020014';
      }

      get categoryName() {
          return '\u667a\u80fd\u65ad\u8def\u5668';
      }

      getCurrent(params) {
          return command({
              method: 'getCurrent',
              methodId: 'URPrGNVq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFaultStatus(params) {
          return command({
              method: 'getFaultStatus',
              methodId: 'UaMC6yf3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFaultType(params) {
          return command({
              method: 'getFaultType',
              methodId: 'UODe0ipG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLeakageCurrent(params) {
          return command({
              method: 'getLeakageCurrent',
              methodId: 'pdN73u55',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLeakageCurrentThreshold(params) {
          return command({
              method: 'getLeakageCurrentThreshold',
              methodId: 'pqYhVUwZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOvercurrentThreshold(params) {
          return command({
              method: 'getOvercurrentThreshold',
              methodId: 'pWG0ZCML',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOverheatingThreshold(params) {
          return command({
              method: 'getOverheatingThreshold',
              methodId: 'ptRSbsAl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOvervoltageThreshold(params) {
          return command({
              method: 'getOvervoltageThreshold',
              methodId: 'pj7xkPxr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPower(params) {
          return command({
              method: 'getPower',
              methodId: 'UvxDsHgx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPowerOnState(params) {
          return command({
              method: 'getPowerOnState',
              methodId: 'p3deL4Em',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRatedCurrent(params) {
          return command({
              method: 'getRatedCurrent',
              methodId: 'pBTQg5QC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRatedPower(params) {
          return command({
              method: 'getRatedPower',
              methodId: 'pz93pgyw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRatedVoltage(params) {
          return command({
              method: 'getRatedVoltage',
              methodId: 'p0crQeXU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getShortCircuitCurrentThreshold(params) {
          return command({
              method: 'getShortCircuitCurrentThreshold',
              methodId: 'UnfcAAWS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pkp1X0JP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemperature(params) {
          return command({
              method: 'getTemperature',
              methodId: 'UmaShjvV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getUndercurrentThreshold(params) {
          return command({
              method: 'getUndercurrentThreshold',
              methodId: 'pNnZxwZd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getUndervoltageThreshold(params) {
          return command({
              method: 'getUndervoltageThreshold',
              methodId: 'pXZuumuA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getVoltage(params) {
          return command({
              method: 'getVoltage',
              methodId: 'U8O3cvYb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLeakageCurrentThreshold(params) {
          return command({
              method: 'setLeakageCurrentThreshold',
              methodId: 'pDrhEqgn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setOvercurrentThreshold(params) {
          return command({
              method: 'setOvercurrentThreshold',
              methodId: 'pghzWkkM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setOverheatingThreshold(params) {
          return command({
              method: 'setOverheatingThreshold',
              methodId: 'peHyqOwR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setOvervoltageThreshold(params) {
          return command({
              method: 'setOvervoltageThreshold',
              methodId: 'pGox7xfE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPowerOnState(params) {
          return command({
              method: 'setPowerOnState',
              methodId: 'ppAXij0W',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setShortCircuitCurrentThreshold(params) {
          return command({
              method: 'setShortCircuitCurrentThreshold',
              methodId: 'phEq11VK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQOycz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setUndercurrentThreshold(params) {
          return command({
              method: 'setUndercurrentThreshold',
              methodId: 'p1vFBbp9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setUndervoltageThreshold(params) {
          return command({
              method: 'setUndervoltageThreshold',
              methodId: 'pZgRtGvI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class PressureSensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020017';
      }

      get categoryName() {
          return '\u538b\u529b\u4f20\u611f\u5668';
      }

      getAlarmStatus(params) {
          return command({
              method: 'getAlarmStatus',
              methodId: 'p1vFBbGm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAlarmThreshold(params) {
          return command({
              method: 'getAlarmThreshold',
              methodId: 'pGox7xo5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPressureValue(params) {
          return command({
              method: 'getPressureValue',
              methodId: 'pDrhEqtP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pZgRtG9l',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAlarmThreshold(params) {
          return command({
              method: 'setAlarmThreshold',
              methodId: 'ppAXijrM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyqOTn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class LiquidLevelSensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020018';
      }

      get categoryName() {
          return '\u6db2\u4f4d\u4f20\u611f\u5668';
      }

      getAlarm(params) {
          return command({
              method: 'getAlarm',
              methodId: 'pghzWkXC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getBuzzerStatus(params) {
          return command({
              method: 'getBuzzerStatus',
              methodId: 'pkp1X0wL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDensity(params) {
          return command({
              method: 'getDensity',
              methodId: 'pDrhEqyU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDepth(params) {
          return command({
              method: 'getDepth',
              methodId: 'pGox7xsP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getHeight(params) {
          return command({
              method: 'getHeight',
              methodId: 'ptRSbsRr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLiquidLevelRatio(params) {
          return command({
              method: 'getLiquidLevelRatio',
              methodId: 'p3deL4ZZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPressure(params) {
          return command({
              method: 'getPressure',
              methodId: 'p1vFBbJw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRange(params) {
          return command({
              method: 'getRange',
              methodId: 'pz93pgMS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getStandardDepth(params) {
          return command({
              method: 'getStandardDepth',
              methodId: 'pdN73uxd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTamperAlarm(params) {
          return command({
              method: 'getTamperAlarm',
              methodId: 'phEq1DQA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBuzzerStatus(params) {
          return command({
              method: 'setBuzzerStatus',
              methodId: 'ppAXijVl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setHeight(params) {
          return command({
              method: 'setHeight',
              methodId: 'pUPQO3A5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setRange(params) {
          return command({
              method: 'setRange',
              methodId: 'peHyqOkK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStandardDepth(params) {
          return command({
              method: 'setStandardDepth',
              methodId: 'pZgRtG5m',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class TemperatureAndHumiditySensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020019';
      }

      get categoryName() {
          return '\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668';
      }

      getAlarmStatus(params) {
          return command({
              method: 'getAlarmStatus',
              methodId: 'phEq1Dmd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAlarmType(params) {
          return command({
              method: 'getAlarmType',
              methodId: 'ptRSbs9Z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getHumidity(params) {
          return command({
              method: 'getHumidity',
              methodId: 'pghzWkrr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemperature(params) {
          return command({
              method: 'getTemperature',
              methodId: 'pDrhEqTA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setHighHumidityAlarmThreshold(params) {
          return command({
              method: 'setHighHumidityAlarmThreshold',
              methodId: 'pZgRtG7w',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setHighTemperatureAlarmThreshold(params) {
          return command({
              method: 'setHighTemperatureAlarmThreshold',
              methodId: 'peHyqOz5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLowHumidityAlarmThreshold(params) {
          return command({
              method: 'setLowHumidityAlarmThreshold',
              methodId: 'pGox7xeU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLowTemperatureAlarmThreshold(params) {
          return command({
              method: 'setLowTemperatureAlarmThreshold',
              methodId: 'ppAXijqm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class VibrationSensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020024';
      }

      get categoryName() {
          return '\u9707\u52a8\u4f20\u611f\u5668';
      }

      getAlarmStatus(params) {
          return command({
              method: 'getAlarmStatus',
              methodId: 'pGox7xJG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAlarmThreshold(params) {
          return command({
              method: 'getAlarmThreshold',
              methodId: 'pZgRtGs3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQO36V',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getVibrationValue(params) {
          return command({
              method: 'getVibrationValue',
              methodId: 'p1vFBbyx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAlarmThreshold(params) {
          return command({
              method: 'setAlarmThreshold',
              methodId: 'ppAXiVAS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyqOVL ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class HumanMotionSensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020025';
      }

      get categoryName() {
          return '\u4eba\u4f53\u79fb\u52a8\u4f20\u611f\u5668';
      }

      getAlarmCondition(params) {
          return command({
              method: 'getAlarmCondition',
              methodId: 'pkp1X0BI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAlarmStatus(params) {
          return command({
              method: 'getAlarmStatus',
              methodId: 'pBTQg5Hn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAlarmSwitch(params) {
          return command({
              method: 'getAlarmSwitch',
              methodId: 'pghzWYm1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getBuzzerSwitch(params) {
          return command({
              method: 'getBuzzerSwitch',
              methodId: 'ptRSbsoR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getExistDelayedTime(params) {
          return command({
              method: 'getExistDelayedTime',
              methodId: 'pdN73uiW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getIndicatorSwitch(params) {
          return command({
              method: 'getIndicatorSwitch',
              methodId: 'phEq1D9o',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getNotExistDelayedTime(params) {
          return command({
              method: 'getNotExistDelayedTime',
              methodId: 'p3deL4tz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSensitivity(params) {
          return command({
              method: 'getSensitivity',
              methodId: 'pz93pK4E',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSomeoneMoved(params) {
          return command({
              method: 'getSomeoneMoved',
              methodId: 'p0crQl89',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAlarmCondition(params) {
          return command({
              method: 'setAlarmCondition',
              methodId: 'p1vFBb3q',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAlarmSwitch(params) {
          return command({
              method: 'setAlarmSwitch',
              methodId: 'peHyqONV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBuzzerSwitch(params) {
          return command({
              method: 'setBuzzerSwitch',
              methodId: 'pUPQO37G',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setExistDelayedTime(params) {
          return command({
              method: 'setExistDelayedTime',
              methodId: 'pZgRtGex',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIndicatorSwitch(params) {
          return command({
              method: 'setIndicatorSwitch',
              methodId: 'ppAXiVO3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setNotExistDelayedTime(params) {
          return command({
              method: 'setNotExistDelayedTime',
              methodId: 'pGox7xDb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSensitivity(params) {
          return command({
              method: 'setSensitivity',
              methodId: 'pDrhEqrk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class PhotoelectricSensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020026';
      }

      get categoryName() {
          return '\u7ea2\u5916\u5bf9\u5c04\u4f20\u611f\u5668';
      }

      getAlarmCondition(params) {
          return command({
              method: 'getAlarmCondition',
              methodId: 'pghzWYAR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAlarmSwitch(params) {
          return command({
              method: 'getAlarmSwitch',
              methodId: 'pDrhEqVo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getBuzzerSwitch(params) {
          return command({
              method: 'getBuzzerSwitch',
              methodId: 'ptRSbssz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDistance(params) {
          return command({
              method: 'getDistance',
              methodId: 'p3deL4yE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getIndicatorSwitch(params) {
          return command({
              method: 'getIndicatorSwitch',
              methodId: 'phEq1D6W',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getObjectStatus(params) {
          return command({
              method: 'getObjectStatus',
              methodId: 'p1vFBbk1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOpticalAxisNumber(params) {
          return command({
              method: 'getOpticalAxisNumber',
              methodId: 'pz93pKQn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOpticalAxisSpacing(params) {
          return command({
              method: 'getOpticalAxisSpacing',
              methodId: 'pkp1X0X9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSensitivity(params) {
          return command({
              method: 'getSensitivity',
              methodId: 'pdN73uJI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAlarmCondition(params) {
          return command({
              method: 'setAlarmCondition',
              methodId: 'ppAXiVvx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAlarmSwitch(params) {
          return command({
              method: 'setAlarmSwitch',
              methodId: 'peHyqOcG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBuzzerSwitch(params) {
          return command({
              method: 'setBuzzerSwitch',
              methodId: 'pZgRtGlq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIndicatorSwitch(params) {
          return command({
              method: 'setIndicatorSwitch',
              methodId: 'pUPQO3fb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSensitivity(params) {
          return command({
              method: 'setSensitivity',
              methodId: 'pGox7xIk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class IrisRecognitionDevice {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020027';
      }

      get categoryName() {
          return '\u8679\u819c\u8bc6\u522b\u5668';
      }

      getDeleteIris(params) {
          return command({
              method: 'getDeleteIris',
              methodId: 'ptRSbseE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getIrisInputTimes(params) {
          return command({
              method: 'getIrisInputTimes',
              methodId: 'phEq1D7I',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getIrisRecognition(params) {
          return command({
              method: 'getIrisRecognition',
              methodId: 'pdN73uD9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getIrisValue(params) {
          return command({
              method: 'getIrisValue',
              methodId: 'pghzWYOz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vFBbzR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkMode(params) {
          return command({
              method: 'getWorkMode',
              methodId: 'pDrhEqNW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDeleteIris(params) {
          return command({
              method: 'setDeleteIris',
              methodId: 'pGox7xKo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIrisInputTimes(params) {
          return command({
              method: 'setIrisInputTimes',
              methodId: 'pZgRtGU1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIrisValue(params) {
          return command({
              method: 'setIrisValue',
              methodId: 'pUPQO3Lk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyqS4b',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWorkMode(params) {
          return command({
              method: 'setWorkMode',
              methodId: 'ppAXiVbq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class HumanBodySensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020028';
      }

      get categoryName() {
          return '\u4eba\u4f53\u5b58\u5728\u4f20\u611f\u5668';
      }

      getAlarmCondition(params) {
          return command({
              method: 'getAlarmCondition',
              methodId: 'pqYhVFQA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAlarmSwitch(params) {
          return command({
              method: 'getAlarmSwitch',
              methodId: 'phEq1Df9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getBuzzerSwitch(params) {
          return command({
              method: 'getBuzzerSwitch',
              methodId: 'pdN73uIM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDistance(params) {
          return command({
              method: 'getDistance',
              methodId: 'pkp1X0Vl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getExistDelayedTime(params) {
          return command({
              method: 'getExistDelayedTime',
              methodId: 'p0crQl5m',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getExistStatus(params) {
          return command({
              method: 'getExistStatus',
              methodId: 'p3deL4kK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getIlluminationStrength(params) {
          return command({
              method: 'getIlluminationStrength',
              methodId: 'pz93pKA5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getIndicatorSwitch(params) {
          return command({
              method: 'getIndicatorSwitch',
              methodId: 'ptRSbspn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMaxTriggerDistance(params) {
          return command({
              method: 'getMaxTriggerDistance',
              methodId: 'pj7xkPyU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMinTriggerDistance(params) {
          return command({
              method: 'getMinTriggerDistance',
              methodId: 'pXZuumJw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getNotExistDelayedTime(params) {
          return command({
              method: 'getNotExistDelayedTime',
              methodId: 'pBTQg5sP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAlarmCondition(params) {
          return command({
              method: 'setAlarmCondition',
              methodId: 'p1vFBb0z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAlarmSwitch(params) {
          return command({
              method: 'setAlarmSwitch',
              methodId: 'peHyqSnk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBuzzerSwitch(params) {
          return command({
              method: 'setBuzzerSwitch',
              methodId: 'pUPQO3xo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setExistDelayedTime(params) {
          return command({
              method: 'setExistDelayedTime',
              methodId: 'pZgRtGZR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIndicatorSwitch(params) {
          return command({
              method: 'setIndicatorSwitch',
              methodId: 'ppAXiVR1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMaxTriggerDistance(params) {
          return command({
              method: 'setMaxTriggerDistance',
              methodId: 'pghzWYvE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMinTriggerDistance(params) {
          return command({
              method: 'setMinTriggerDistance',
              methodId: 'pDrhEqcI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setNotExistDelayedTime(params) {
          return command({
              method: 'setNotExistDelayedTime',
              methodId: 'pGox7xhW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class DoorAndWindowSensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020029';
      }

      get categoryName() {
          return '\u95e8\u7a97\u4f20\u611f\u5668';
      }

      getPreventRemoveAlarm(params) {
          return command({
              method: 'getPreventRemoveAlarm',
              methodId: 'ptRSbsUK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSensitivity(params) {
          return command({
              method: 'getSensitivity',
              methodId: 'p1vFBbBE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getStatus(params) {
          return command({
              method: 'getStatus',
              methodId: 'pGox7xtI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTimeoutAlarmStatus(params) {
          return command({
              method: 'getTimeoutAlarmStatus',
              methodId: 'phEq1DLM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTimeoutAlarmSwitch(params) {
          return command({
              method: 'getTimeoutAlarmSwitch',
              methodId: 'pDrhEc49',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTimeoutTime(params) {
          return command({
              method: 'getTimeoutTime',
              methodId: 'pghzWY8n',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPreventRemoveAlarm(params) {
          return command({
              method: 'setPreventRemoveAlarm',
              methodId: 'pZgRtGiz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSensitivity(params) {
          return command({
              method: 'setSensitivity',
              methodId: 'peHyqSmo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTimeoutAlarmSwitch(params) {
          return command({
              method: 'setTimeoutAlarmSwitch',
              methodId: 'ppAXiV9R',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTimeoutTime(params) {
          return command({
              method: 'setTimeoutTime',
              methodId: 'pUPQO32W',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ELock {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020031';
      }

      get categoryName() {
          return '\u7535\u5b50\u9501';
      }

      getAutoLockTime(params) {
          return command({
              method: 'getAutoLockTime',
              methodId: 'pDrhEcml',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFingerprintsList(params) {
          return command({
              method: 'getFingerprintsList',
              methodId: 'pghzWY95',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPassword(params) {
          return command({
              method: 'getPassword',
              methodId: 'p1vFBbrK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getStatus(params) {
          return command({
              method: 'getStatus',
              methodId: 'pGox7x3M',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getUnlockRecord(params) {
          return command({
              method: 'getUnlockRecord',
              methodId: 'phEq1Dom',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAutoLockTime(params) {
          return command({
              method: 'setAutoLockTime',
              methodId: 'pZgRtGDn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFingerprints(params) {
          return command({
              method: 'setFingerprints',
              methodId: 'pUPQO3e9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPassword(params) {
          return command({
              method: 'setPassword',
              methodId: 'ppAXiV7E',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setUnlock(params) {
          return command({
              method: 'setUnlock',
              methodId: 'peHyqSOI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartRollerCurtain {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020032';
      }

      get categoryName() {
          return '\u667a\u80fd\u5377\u5e18';
      }

      getAutoStartSwitch(params) {
          return command({
              method: 'getAutoStartSwitch',
              methodId: 'pDrhEcAm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentPosition(params) {
          return command({
              method: 'getCurrentPosition',
              methodId: 'p1vFBbV5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSingleRunTime(params) {
          return command({
              method: 'getSingleRunTime',
              methodId: 'phEq1Dsw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pZgRtGIK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetPosition(params) {
          return command({
              method: 'getTargetPosition',
              methodId: 'pGox7xkl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkingStatus(params) {
          return command({
              method: 'getWorkingStatus',
              methodId: 'pghzWY6P',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAutoStartSwitch(params) {
          return command({
              method: 'setAutoStartSwitch',
              methodId: 'pUPQO3lM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyqSv9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetPosition(params) {
          return command({
              method: 'setTargetPosition',
              methodId: 'ppAXiVfn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class UniversalRemoteControl {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020035';
      }

      get categoryName() {
          return '\u4e07\u80fd\u9065\u63a7\u5668';
      }

      getDirectiveList(params) {
          return command({
              method: 'getDirectiveList',
              methodId: 'pghzWYLd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemoteControlList(params) {
          return command({
              method: 'getRemoteControlList',
              methodId: 'ptRSbsKL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSentDirective(params) {
          return command({
              method: 'getSentDirective',
              methodId: 'phEq1DUZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pdN73uzS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDeleteDirective(params) {
          return command({
              method: 'setDeleteDirective',
              methodId: 'pZgRtGtU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDeleteRemoteControl(params) {
          return command({
              method: 'setDeleteRemoteControl',
              methodId: 'pGox7xBC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDirective(params) {
          return command({
              method: 'setDirective',
              methodId: 'peHyqS9m',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLearnDirective(params) {
          return command({
              method: 'setLearnDirective',
              methodId: 'pUPQO3iw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setRemoteControlName(params) {
          return command({
              method: 'setRemoteControlName',
              methodId: 'ppAXiV2P',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSendDirective(params) {
          return command({
              method: 'setSendDirective',
              methodId: 'pDrhEcbr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'p1vFB84A',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmokeSensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020036';
      }

      get categoryName() {
          return '\u70df\u96fe\u4f20\u611f\u5668';
      }

      getAlarmDuration(params) {
          return command({
              method: 'getAlarmDuration',
              methodId: 'pkp1XMvx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAlarmStatus(params) {
          return command({
              method: 'getAlarmStatus',
              methodId: 'phEq1DZS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAlarmSwitch(params) {
          return command({
              method: 'getAlarmSwitch',
              methodId: 'pdN73u03',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAlarmThreshold(params) {
          return command({
              method: 'getAlarmThreshold',
              methodId: 'p3deL4cG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAlarmVolume(params) {
          return command({
              method: 'getAlarmVolume',
              methodId: 'pz93pKfb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getIndicatorSwitch(params) {
          return command({
              method: 'getIndicatorSwitch',
              methodId: 'p0crQllq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPreheatStatus(params) {
          return command({
              method: 'getPreheatStatus',
              methodId: 'pXZuumk1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSensitivity(params) {
          return command({
              method: 'getSensitivity',
              methodId: 'pBTQg5Ik',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSmokeValue(params) {
          return command({
              method: 'getSmokeValue',
              methodId: 'ptRSbshV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAlarmDuration(params) {
          return command({
              method: 'setAlarmDuration',
              methodId: 'pUPQO3JC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAlarmSwitch(params) {
          return command({
              method: 'setAlarmSwitch',
              methodId: 'peHyqS6w',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAlarmThreshold(params) {
          return command({
              method: 'setAlarmThreshold',
              methodId: 'ppAXiVsU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAlarmVolume(params) {
          return command({
              method: 'setAlarmVolume',
              methodId: 'pZgRtGyA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIndicatorSwitch(params) {
          return command({
              method: 'setIndicatorSwitch',
              methodId: 'pGox7xPr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMute(params) {
          return command({
              method: 'setMute',
              methodId: 'pDrhEcRZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSelfCheck(params) {
          return command({
              method: 'setSelfCheck',
              methodId: 'pghzWYxL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSensitivity(params) {
          return command({
              method: 'setSensitivity',
              methodId: 'p1vFB8nd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ElectricityMeter {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020037';
      }

      get categoryName() {
          return '\u7535\u91cf\u8ba1';
      }

      getCurrent(params) {
          return command({
              method: 'getCurrent',
              methodId: 'pUPQO31r',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getElectricityUsage(params) {
          return command({
              method: 'getElectricityUsage',
              methodId: 'p1vFB8mL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPower(params) {
          return command({
              method: 'getPower',
              methodId: 'pGox7xrZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXiVeA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getVoltage(params) {
          return command({
              method: 'getVoltage',
              methodId: 'pZgRtG3d',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyqS7C',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class Buzzer {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020038';
      }

      get categoryName() {
          return '\u8702\u9e23\u5668';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pZgRtGkL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getVolume(params) {
          return command({
              method: 'getVolume',
              methodId: 'pGox7xVS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBeep(params) {
          return command({
              method: 'setBeep',
              methodId: 'pUPQO3IZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyqSCr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setVolume(params) {
          return command({
              method: 'setVolume',
              methodId: 'ppAXiVld',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartWindowOpener {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020039';
      }

      get categoryName() {
          return '\u667a\u80fd\u5f00\u7a97\u5668';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXiVUL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyqSLZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class HomeCombustibleGasDetector {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020040';
      }

      get categoryName() {
          return '\u5bb6\u7528\u53ef\u71c3\u6c14\u4f53\u63a2\u6d4b\u5668';
      }

      getAlarmDuration(params) {
          return command({
              method: 'getAlarmDuration',
              methodId: 'pkp1XM6z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAlarmRingtone(params) {
          return command({
              method: 'getAlarmRingtone',
              methodId: 'p0crQlJE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAlarmSwitch(params) {
          return command({
              method: 'getAlarmSwitch',
              methodId: 'phEq1DI1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAlarmVolume(params) {
          return command({
              method: 'getAlarmVolume',
              methodId: 'pz93pKsI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAlarmWarming(params) {
          return command({
              method: 'getAlarmWarming',
              methodId: 'ptRSbsko',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCOAlarmThreshold(params) {
          return command({
              method: 'getCOAlarmThreshold',
              methodId: 'p3deLnaW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCODetectionStatus(params) {
          return command({
              method: 'getCODetectionStatus',
              methodId: 'pj7xkXnM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCOValue(params) {
          return command({
              method: 'getCOValue',
              methodId: 'pXZuumXn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGasAlarmThreshold(params) {
          return command({
              method: 'getGasAlarmThreshold',
              methodId: 'pdN73uVR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGasDetectionStatus(params) {
          return command({
              method: 'getGasDetectionStatus',
              methodId: 'pqYhVFxl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGasValue(params) {
          return command({
              method: 'getGasValue',
              methodId: 'pNnZxtRK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getIndicatorSwitch(params) {
          return command({
              method: 'getIndicatorSwitch',
              methodId: 'pBTQg5y9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSensitivity(params) {
          return command({
              method: 'getSensitivity',
              methodId: 'pWG0ZfZ5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAlarmDuration(params) {
          return command({
              method: 'setAlarmDuration',
              methodId: 'pZgRtG0G',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAlarmRingtone(params) {
          return command({
              method: 'setAlarmRingtone',
              methodId: 'p1vFB8vb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAlarmSwitch(params) {
          return command({
              method: 'setAlarmSwitch',
              methodId: 'peHyqSxS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAlarmVolume(params) {
          return command({
              method: 'setAlarmVolume',
              methodId: 'pGox7xcx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCOAlarmThreshold(params) {
          return command({
              method: 'setCOAlarmThreshold',
              methodId: 'pUPQO3h3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGasAlarmThreshold(params) {
          return command({
              method: 'setGasAlarmThreshold',
              methodId: 'ppAXiVFV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIndicatorSwitch(params) {
          return command({
              method: 'setIndicatorSwitch',
              methodId: 'pDrhEcCq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSensitivity(params) {
          return command({
              method: 'setSensitivity',
              methodId: 'pghzWYlk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartAntiLossDevice {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020041';
      }

      get categoryName() {
          return '\u667a\u80fd\u9632\u4e22\u5668';
      }

      getGpsPosition(params) {
          return command({
              method: 'getGpsPosition',
              methodId: 'pZgRtGBb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLightSwitch(params) {
          return command({
              method: 'getLightSwitch',
              methodId: 'pDrhEcL1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRingSwitch(params) {
          return command({
              method: 'getRingSwitch',
              methodId: 'p1vFB8bk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSignalIntensity(params) {
          return command({
              method: 'getSignalIntensity',
              methodId: 'pGox7xWq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLightSwitch(params) {
          return command({
              method: 'setLightSwitch',
              methodId: 'pUPQO3tx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setOrientation(params) {
          return command({
              method: 'setOrientation',
              methodId: 'peHyqS23',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setRingSwitch(params) {
          return command({
              method: 'setRingSwitch',
              methodId: 'ppAXiViG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ChildTracker {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020043';
      }

      get categoryName() {
          return '\u513f\u7ae5\u5b9a\u4f4d\u5668';
      }

      getGpsPosition(params) {
          return command({
              method: 'getGpsPosition',
              methodId: 'pZgRtGro',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLightSwitch(params) {
          return command({
              method: 'getLightSwitch',
              methodId: 'pDrhEc2z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRingSwitch(params) {
          return command({
              method: 'getRingSwitch',
              methodId: 'p1vFB8uW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSignalIntensity(params) {
          return command({
              method: 'getSignalIntensity',
              methodId: 'pGox72mR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLightSwitch(params) {
          return command({
              method: 'setLightSwitch',
              methodId: 'pUPQO331',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setOrientation(params) {
          return command({
              method: 'setOrientation',
              methodId: 'peHyqSEq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setRingSwitch(params) {
          return command({
              method: 'setRingSwitch',
              methodId: 'ppAXiV1k',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ElderlyTracker {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020044';
      }

      get categoryName() {
          return '\u8001\u4eba\u5b9a\u4f4d\u5668';
      }

      getGpsPosition(params) {
          return command({
              method: 'getGpsPosition',
              methodId: 'pZgRtGjW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLightSwitch(params) {
          return command({
              method: 'getLightSwitch',
              methodId: 'pDrhEcsE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRingSwitch(params) {
          return command({
              method: 'getRingSwitch',
              methodId: 'p1vFB86I',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSignalIntensity(params) {
          return command({
              method: 'getSignalIntensity',
              methodId: 'pGox72az',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLightSwitch(params) {
          return command({
              method: 'setLightSwitch',
              methodId: 'pUPQO3kR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setOrientation(params) {
          return command({
              method: 'setOrientation',
              methodId: 'peHyqSl1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setRingSwitch(params) {
          return command({
              method: 'setRingSwitch',
              methodId: 'ppAXiVIo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class GeneralTracker {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020045';
      }

      get categoryName() {
          return '\u901a\u7528\u5b9a\u4f4d\u5668';
      }

      getGpsPosition(params) {
          return command({
              method: 'getGpsPosition',
              methodId: 'pZgRtGNI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLightSwitch(params) {
          return command({
              method: 'getLightSwitch',
              methodId: 'pDrhEcen',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRingSwitch(params) {
          return command({
              method: 'getRingSwitch',
              methodId: 'p1vFB879',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSignalIntensity(params) {
          return command({
              method: 'getSignalIntensity',
              methodId: 'pGox72OE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLightSwitch(params) {
          return command({
              method: 'setLightSwitch',
              methodId: 'pUPQO3Yz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setOrientation(params) {
          return command({
              method: 'setOrientation',
              methodId: 'peHyqSUR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setRingSwitch(params) {
          return command({
              method: 'setRingSwitch',
              methodId: 'ppAXiVgW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class AttitudeSensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020048';
      }

      get categoryName() {
          return '\u59ff\u6001\u4f20\u611f\u5668';
      }

      getAlarmStatus(params) {
          return command({
              method: 'getAlarmStatus',
              methodId: 'pGox72R5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAngle(params) {
          return command({
              method: 'getAngle',
              methodId: 'pZgRtJnl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQO3PK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAngle(params) {
          return command({
              method: 'setAngle',
              methodId: 'ppAXiVdM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peHyqSJn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class MotionandStillnessSensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020049';
      }

      get categoryName() {
          return '\u52a8\u9759\u4f20\u611f\u5668';
      }

      getStatus(params) {
          return command({
              method: 'getStatus',
              methodId: 'peHyqS1K',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartDoor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020050';
      }

      get categoryName() {
          return '\u667a\u80fd\u95e8';
      }

      getStatus(params) {
          return command({
              method: 'getStatus',
              methodId: 'ppAXiVkm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getUnlockRecord(params) {
          return command({
              method: 'getUnlockRecord',
              methodId: 'pUPQO3jP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setUnlock(params) {
          return command({
              method: 'setUnlock',
              methodId: 'peHyqSI5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SafeBox {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020051';
      }

      get categoryName() {
          return '\u4fdd\u9669\u7bb1';
      }

      getStatus(params) {
          return command({
              method: 'getStatus',
              methodId: 'ppAXiVYw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getUnlockRecord(params) {
          return command({
              method: 'getUnlockRecord',
              methodId: 'pUPQO3NU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setUnlock(params) {
          return command({
              method: 'setUnlock',
              methodId: 'peHyqSgP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class VOCDetector {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020052';
      }

      get categoryName() {
          return '\u0056\u004f\u0043\u68c0\u6d4b\u4eea';
      }

      getVocState(params) {
          return command({
              method: 'getVocState',
              methodId: 'peHyqShU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getVocValue(params) {
          return command({
              method: 'getVocValue',
              methodId: 'ppAXiV0C',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class OccupancySensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010020053';
      }

      get categoryName() {
          return '\u5360\u4f4d\u4f20\u611f\u5668';
      }

      getPositionThreshold(params) {
          return command({
              method: 'getPositionThreshold',
              methodId: 'ppAXzdGR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPresenceState(params) {
          return command({
              method: 'getPresenceState',
              methodId: 'pUPQoZtW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPositionThreshold(params) {
          return command({
              method: 'setPositionThreshold',
              methodId: 'peH39roo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class DesktopFan {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030001';
      }

      get categoryName() {
          return '\u684c\u9762\u6247';
      }

      getOscillating(params) {
          return command({
              method: 'getOscillating',
              methodId: 'p1vFjx7C',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSpeedGear(params) {
          return command({
              method: 'getSpeedGear',
              methodId: 'pGoxHGOU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pZgRTyNw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setOscillating(params) {
          return command({
              method: 'setOscillating',
              methodId: 'pUPQ8jYP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSpeedGear(params) {
          return command({
              method: 'setSpeedGear',
              methodId: 'ppAXIOKm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3nfU5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class HomeHumidifier {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030002';
      }

      get categoryName() {
          return '\u5bb6\u7528\u52a0\u6e7f\u5668';
      }

      getAchieveSettledHumidity(params) {
          return command({
              method: 'getAchieveSettledHumidity',
              methodId: 'U2eMaWyU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getBacklightBrightness(params) {
          return command({
              method: 'getBacklightBrightness',
              methodId: 'URPrgvkK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getChildLockSwitch(params) {
          return command({
              method: 'getChildLockSwitch',
              methodId: 'UsRchzXC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentHumidity(params) {
          return command({
              method: 'getCurrentHumidity',
              methodId: 'UaMCfjvE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFilterRemainTime(params) {
          return command({
              method: 'getFilterRemainTime',
              methodId: 'UHwwZRJw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getHumidity(params) {
          return command({
              method: 'getHumidity',
              methodId: 'UODeXyf9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLightMode(params) {
          return command({
              method: 'getLightMode',
              methodId: 'U8OTQHIM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLightSwitch(params) {
          return command({
              method: 'getLightSwitch',
              methodId: 'UvxDpipn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSeparationAlarm(params) {
          return command({
              method: 'getSeparationAlarm',
              methodId: 'UfjZVosP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSprayMode(params) {
          return command({
              method: 'getSprayMode',
              methodId: 'UmaS3AcI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSpraySwitch(params) {
          return command({
              method: 'getSpraySwitch',
              methodId: 'pqYhWwZR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSprayVolume(params) {
          return command({
              method: 'getSprayVolume',
              methodId: 'pWG01UhW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSterilizationSwitch(params) {
          return command({
              method: 'getSterilizationSwitch',
              methodId: 'U5sukkA5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pNnZEPxo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWarningToneSwitch(params) {
          return command({
              method: 'getWarningToneSwitch',
              methodId: 'U9KmRNVl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWaterLevel(params) {
          return command({
              method: 'getWaterLevel',
              methodId: 'UnfcbC0z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWaterShortageAlarm(params) {
          return command({
              method: 'getWaterShortageAlarm',
              methodId: 'UCb2x15m',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBacklightBrightness(params) {
          return command({
              method: 'setBacklightBrightness',
              methodId: 'phEqKkkL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setChildLockSwitch(params) {
          return command({
              method: 'setChildLockSwitch',
              methodId: 'p3deou63',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFilterToDefault(params) {
          return command({
              method: 'setFilterToDefault',
              methodId: 'pkp1q4sG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setHumidity(params) {
          return command({
              method: 'setHumidity',
              methodId: 'p1vFjxCr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLightMode(params) {
          return command({
              method: 'setLightMode',
              methodId: 'pgh0mqIZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLightSwitch(params) {
          return command({
              method: 'setLightSwitch',
              methodId: 'pDrhFbld',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSprayMode(params) {
          return command({
              method: 'setSprayMode',
              methodId: 'pZgRTycC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSpraySwitch(params) {
          return command({
              method: 'setSpraySwitch',
              methodId: 'ppAXIOhw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSprayVolume(params) {
          return command({
              method: 'setSprayVolume',
              methodId: 'pUPQ8j0U',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSprayVolumePercentage(params) {
          return command({
              method: 'setSprayVolumePercentage',
              methodId: 'pGoxHGvA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSterilizationSwitch(params) {
          return command({
              method: 'setSterilizationSwitch',
              methodId: 'pdN7zsaV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3nfFP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWarningToneSwitch(params) {
          return command({
              method: 'setWarningToneSwitch',
              methodId: 'ptRS91VS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWaterShortageThreshold(params) {
          return command({
              method: 'setWaterShortageThreshold',
              methodId: 'pj7xBmR1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class IndustrialDehumidifier {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030004';
      }

      get categoryName() {
          return '\u5de5\u4e1a\u9664\u6e7f\u673a';
      }

      getCurrentHumidity(params) {
          return command({
              method: 'getCurrentHumidity',
              methodId: 'pgh0mqh3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemp(params) {
          return command({
              method: 'getCurrentTemp',
              methodId: 'pDrhFbFV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getHumidity(params) {
          return command({
              method: 'getHumidity',
              methodId: 'pGoxHGRL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vFjxxS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemp(params) {
          return command({
              method: 'getTemp',
              methodId: 'pZgRT3nZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setHumidity(params) {
          return command({
              method: 'setHumidity',
              methodId: 'ppAXIOdr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQ8jPd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTemp(params) {
          return command({
              method: 'setTemp',
              methodId: 'peH3nfJA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class FreshAirUnit {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030005';
      }

      get categoryName() {
          return '\u65b0\u98ce\u673a\u7ec4';
      }

      getAirTemperature(params) {
          return command({
              method: 'getAirTemperature',
              methodId: 'pGoxHGuV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getHumidity(params) {
          return command({
              method: 'getHumidity',
              methodId: 'pDrhFbiG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pZgRT3mS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pgh0mqtx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemperature(params) {
          return command({
              method: 'getTemperature',
              methodId: 'p1vFjx23',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAirTemperature(params) {
          return command({
              method: 'setAirTemperature',
              methodId: 'ppAXIO3Z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pUPQ8jrL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3nf1d',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class WaterFilter {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030007';
      }

      get categoryName() {
          return '\u51c0\u6c34\u5668';
      }

      getActualOutflow(params) {
          return command({
              method: 'getActualOutflow',
              methodId: 'pNnZEPUl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAutoCleaning(params) {
          return command({
              method: 'getAutoCleaning',
              methodId: 'UmaS3OOw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getChildLockSwitch(params) {
          return command({
              method: 'getChildLockSwitch',
              methodId: 'UODeXyeC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDegree(params) {
          return command({
              method: 'getDegree',
              methodId: 'pkp1q4iI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOutflowRate(params) {
          return command({
              method: 'getOutflowRate',
              methodId: 'pqYhWwK5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOutflowSwitch(params) {
          return command({
              method: 'getOutflowSwitch',
              methodId: 'pdN7zsuW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPurificationMode(params) {
          return command({
              method: 'getPurificationMode',
              methodId: 'pj7xBmLK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainingDays(params) {
          return command({
              method: 'getRemainingDays',
              methodId: 'UnfcbCNP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainingFiltration(params) {
          return command({
              method: 'getRemainingFiltration',
              methodId: 'pWG01Uzm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ptRS9DmR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemp(params) {
          return command({
              method: 'getTargetTemp',
              methodId: 'p0crOgB9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTds(params) {
          return command({
              method: 'getTds',
              methodId: 'pz93i0tE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTempMode(params) {
          return command({
              method: 'getTempMode',
              methodId: 'pXZu75bM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTimeoutProtection(params) {
          return command({
              method: 'getTimeoutProtection',
              methodId: 'UaMCfj7U',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWaterTemp(params) {
          return command({
              method: 'getWaterTemp',
              methodId: 'pBTQtl4n',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkingStatus(params) {
          return command({
              method: 'getWorkingStatus',
              methodId: 'p3deou2z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAutoCleaning(params) {
          return command({
              method: 'setAutoCleaning',
              methodId: 'pDrhFb1k',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setChildLockSwitch(params) {
          return command({
              method: 'setChildLockSwitch',
              methodId: 'phEqKkro',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFilterToDefault(params) {
          return command({
              method: 'setFilterToDefault',
              methodId: 'p1vFjxEq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setOutflowSwitch(params) {
          return command({
              method: 'setOutflowSwitch',
              methodId: 'ppAXIOY3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPurificationMode(params) {
          return command({
              method: 'setPurificationMode',
              methodId: 'pGoxHG7b',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3nfgV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemp(params) {
          return command({
              method: 'setTargetTemp',
              methodId: 'pUPQ8jNG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTempMode(params) {
          return command({
              method: 'setTempMode',
              methodId: 'pZgRT3Ox',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTimeoutProtection(params) {
          return command({
              method: 'setTimeoutProtection',
              methodId: 'pgh0mq31',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class AirPurifier {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030008';
      }

      get categoryName() {
          return '\u7a7a\u6c14\u51c0\u5316\u5668';
      }

      getAirQuality(params) {
          return command({
              method: 'getAirQuality',
              methodId: 'p3deousE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAnion(params) {
          return command({
              method: 'getAnion',
              methodId: 'phEqKkjW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCO2(params) {
          return command({
              method: 'getCO2',
              methodId: 'UODeXylr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getChildLock(params) {
          return command({
              method: 'getChildLock',
              methodId: 'pdN7zs6I',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCumulatedAbsorbedParticles(params) {
          return command({
              method: 'getCumulatedAbsorbedParticles',
              methodId: 'ptRS9Daz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentHumidity(params) {
          return command({
              method: 'getCurrentHumidity',
              methodId: 'pNnZEPZm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pqYhWwhP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFaultAlarm(params) {
          return command({
              method: 'getFaultAlarm',
              methodId: 'pj7xBmx5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFaultAlarmType(params) {
          return command({
              method: 'getFaultAlarmType',
              methodId: 'pXZu75Rl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFormaldehyde(params) {
          return command({
              method: 'getFormaldehyde',
              methodId: 'p0crOgPM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPm10(params) {
          return command({
              method: 'getPm10',
              methodId: 'pz93i0yn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPm2_5(params) {
          return command({
              method: 'getPm2_5',
              methodId: 'pkp1q4J9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPurgeMode(params) {
          return command({
              method: 'getPurgeMode',
              methodId: 'UmaS3OvC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainingLife(params) {
          return command({
              method: 'getRemainingLife',
              methodId: 'pBTQtlnK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pWG01U0w',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTVOC(params) {
          return command({
              method: 'getTVOC',
              methodId: 'UaMCfjfA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWindMode(params) {
          return command({
              method: 'getWindMode',
              methodId: 'UnfcbCcU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWindSpeed(params) {
          return command({
              method: 'getWindSpeed',
              methodId: 'pgh0mqkR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAnion(params) {
          return command({
              method: 'setAnion',
              methodId: 'ppAXIO0x',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setChildLock(params) {
          return command({
              method: 'setChildLock',
              methodId: 'pUPQ8jcb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFilterToDefault(params) {
          return command({
              method: 'setFilterToDefault',
              methodId: 'pZgRT3Sq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPurificationMode(params) {
          return command({
              method: 'setPurificationMode',
              methodId: 'pDrhFbIo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pGoxHGCk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWindMode(params) {
          return command({
              method: 'setWindMode',
              methodId: 'p1vFjxl1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWindSpeed(params) {
          return command({
              method: 'setWindSpeed',
              methodId: 'peH3nfhG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class AromatherapyMachine {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030009';
      }

      get categoryName() {
          return '\u9999\u85b0\u673a';
      }

      getBacklightBrightness(params) {
          return command({
              method: 'getBacklightBrightness',
              methodId: 'pNnZEPiw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLightMode(params) {
          return command({
              method: 'getLightMode',
              methodId: 'pj7xBm2P',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLightSwitch(params) {
          return command({
              method: 'getLightSwitch',
              methodId: 'pXZu759m',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainingTime(params) {
          return command({
              method: 'getRemainingTime',
              methodId: 'Unfcbf4A',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSleepMode(params) {
          return command({
              method: 'getSleepMode',
              methodId: 'UmaS3Obr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSprayMode(params) {
          return command({
              method: 'getSprayMode',
              methodId: 'pBTQtlm5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSpraySwitch(params) {
          return command({
              method: 'getSpraySwitch',
              methodId: 'pkp1q41M',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSprayVolume(params) {
          return command({
              method: 'getSprayVolume',
              methodId: 'pz93i03K',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSprayVolumePercentage(params) {
          return command({
              method: 'getSprayVolumePercentage',
              methodId: 'p0crOgrl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSterilizationSwitch(params) {
          return command({
              method: 'getSterilizationSwitch',
              methodId: 'pWG01UBC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p3deouen',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWarningToneSwitch(params) {
          return command({
              method: 'getWarningToneSwitch',
              methodId: 'pqYhWwtU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBacklightBrightness(params) {
          return command({
              method: 'setBacklightBrightness',
              methodId: 'pDrhFbgW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLightMode(params) {
          return command({
              method: 'setLightMode',
              methodId: 'p1vFjxUR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLightSwitch(params) {
          return command({
              method: 'setLightSwitch',
              methodId: 'pGoxHGLo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSleepMode(params) {
          return command({
              method: 'setSleepMode',
              methodId: 'pdN7zs79',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSprayMode(params) {
          return command({
              method: 'setSprayMode',
              methodId: 'ptRS9DOE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSpraySwitch(params) {
          return command({
              method: 'setSpraySwitch',
              methodId: 'ppAXIOMq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSprayVolume(params) {
          return command({
              method: 'setSprayVolume',
              methodId: 'pUPQ8jWk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSprayVolumePercentage(params) {
          return command({
              method: 'setSprayVolumePercentage',
              methodId: 'pZgRT3b1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSterilizationSwitch(params) {
          return command({
              method: 'setSterilizationSwitch',
              methodId: 'phEqKkNI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3nftb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWarningToneSwitch(params) {
          return command({
              method: 'setWarningToneSwitch',
              methodId: 'pgh0mqYz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class RobotVacuumCleaner {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030010';
      }

      get categoryName() {
          return '\u626b\u5730\u673a\u5668\u4eba';
      }

      getChildLockSwitch(params) {
          return command({
              method: 'getChildLockSwitch',
              methodId: 'pgh0mq0E',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'phEqKkc9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getStatus(params) {
          return command({
              method: 'getStatus',
              methodId: 'pdN7zsCM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ptRS9Dvn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setChildLockSwitch(params) {
          return command({
              method: 'setChildLockSwitch',
              methodId: 'ppAXIOP1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setContinue(params) {
          return command({
              method: 'setContinue',
              methodId: 'pDrhFbhI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFinish(params) {
          return command({
              method: 'setFinish',
              methodId: 'p1vFjxFz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pUPQ8Vno',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPause(params) {
          return command({
              method: 'setPause',
              methodId: 'peH3nfdk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'pGoxHGHW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pZgRT3RR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class GeomagneticSensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030013';
      }

      get categoryName() {
          return '\u5730\u78c1\u4f20\u611f\u5668';
      }

      getDistance(params) {
          return command({
              method: 'getDistance',
              methodId: 'pUPQ8VO9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getStatus(params) {
          return command({
              method: 'getStatus',
              methodId: 'pGoxHGEM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTimeInterval(params) {
          return command({
              method: 'getTimeInterval',
              methodId: 'pZgRT37n',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDistance(params) {
          return command({
              method: 'setDistance',
              methodId: 'peH3nfYI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTimeInterval(params) {
          return command({
              method: 'setTimeInterval',
              methodId: 'ppAXIONE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class InfraredTemperatureSensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030014';
      }

      get categoryName() {
          return '\u7ea2\u5916\u6d4b\u6e29\u4f20\u611f\u5668';
      }

      getAlarmSwitch(params) {
          return command({
              method: 'getAlarmSwitch',
              methodId: 'pGoxHGll',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAlarmType(params) {
          return command({
              method: 'getAlarmType',
              methodId: 'p1vFjxI5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getHighTemperatureThreshold(params) {
          return command({
              method: 'getHighTemperatureThreshold',
              methodId: 'phEqKYaw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLowTemperatureThreshold(params) {
          return command({
              method: 'getLowTemperatureThreshold',
              methodId: 'ptRS9D6U',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemperature(params) {
          return command({
              method: 'getTemperature',
              methodId: 'pDrhFbkm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemperatureUnit(params) {
          return command({
              method: 'getTemperatureUnit',
              methodId: 'pgh0mqjP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAlarmSwitch(params) {
          return command({
              method: 'setAlarmSwitch',
              methodId: 'peH3nf09',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setHighTemperatureThreshold(params) {
          return command({
              method: 'setHighTemperatureThreshold',
              methodId: 'pUPQ8VSM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLowTemperatureThreshold(params) {
          return command({
              method: 'setLowTemperatureThreshold',
              methodId: 'pZgRT3CK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTemperatureUnit(params) {
          return command({
              method: 'setTemperatureUnit',
              methodId: 'ppAXIOcn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class DistanceSensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030015';
      }

      get categoryName() {
          return '\u6d4b\u8ddd\u4f20\u611f\u5668';
      }

      getExistObstacle(params) {
          return command({
              method: 'getExistObstacle',
              methodId: 'pgh0mqNU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFrequency(params) {
          return command({
              method: 'getFrequency',
              methodId: 'pGoxHGUm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMeasureDistance(params) {
          return command({
              method: 'getMeasureDistance',
              methodId: 'pDrhFbYw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMeasuredData(params) {
          return command({
              method: 'getMeasuredData',
              methodId: 'phEqKYOC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pZgRT3L5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getUnit(params) {
          return command({
              method: 'getUnit',
              methodId: 'p1vFjxgP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFrequency(params) {
          return command({
              method: 'setFrequency',
              methodId: 'ppAXIOWK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3nfMM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setUnit(params) {
          return command({
              method: 'setUnit',
              methodId: 'pUPQ8Vbl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class NoiseDetector {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030016';
      }

      get categoryName() {
          return '\u566a\u58f0\u68c0\u6d4b\u4eea';
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pDrhFb0C',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getNoiseFrequency(params) {
          return command({
              method: 'getNoiseFrequency',
              methodId: 'pdN7zslZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getNoiseValue(params) {
          return command({
              method: 'getNoiseValue',
              methodId: 'ptRS9DCd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSoundFrequency(params) {
          return command({
              method: 'getSoundFrequency',
              methodId: 'phEqKYSr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSoundValue(params) {
          return command({
              method: 'getSoundValue',
              methodId: 'pgh0mqcA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vFjxhU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setClear(params) {
          return command({
              method: 'setClear',
              methodId: 'pGoxHGFw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXISn5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'pUPQ8VRm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'pZgRT3HP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3nfPl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartExhaustFan {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030017';
      }

      get categoryName() {
          return '\u667a\u80fd\u6392\u98ce\u673a';
      }

      getFaultAlarm(params) {
          return command({
              method: 'getFaultAlarm',
              methodId: 'pZgRT32U',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSpeed(params) {
          return command({
              method: 'getSpeed',
              methodId: 'pGoxHGiC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQ8Vuw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSpeed(params) {
          return command({
              method: 'setSpeed',
              methodId: 'ppAXISQP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3nfrm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ElectricHeater {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030018';
      }

      get categoryName() {
          return '\u7535\u6696\u5668';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pgh0mcnL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'pDrhFbPZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p1vFjxdd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'phEqKYRS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemperature(params) {
          return command({
              method: 'getTargetTemperature',
              methodId: 'pGoxHGGr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'pUPQ8V6C',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXISaU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pZgRT3sA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemperature(params) {
          return command({
              method: 'setTargetTemperature',
              methodId: 'peH3nfjw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class StandFan {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030019';
      }

      get categoryName() {
          return '\u843d\u5730\u6247';
      }

      getAngle(params) {
          return command({
              method: 'getAngle',
              methodId: 'U9KmRq2P',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAnion(params) {
          return command({
              method: 'getAnion',
              methodId: 'U8OTQxm5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getChildLock(params) {
          return command({
              method: 'getChildLock',
              methodId: 'URPrgb9m',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'pqYhWwNI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOscillatingRange(params) {
          return command({
              method: 'getOscillatingRange',
              methodId: 'UODeXy3K',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOscillatingSwitch(params) {
          return command({
              method: 'getOscillatingSwitch',
              methodId: 'UaMCfj1M',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getScreenSwitch(params) {
          return command({
              method: 'getScreenSwitch',
              methodId: 'UvxDpirl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSmart(params) {
          return command({
              method: 'getSmart',
              methodId: 'U5sukkiw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getStrong(params) {
          return command({
              method: 'getStrong',
              methodId: 'UCb2x1tU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pXZu75UR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTipOverRange(params) {
          return command({
              method: 'getTipOverRange',
              methodId: 'UmaS3Oen',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTipOverSwitch(params) {
          return command({
              method: 'getTipOverSwitch',
              methodId: 'Unfcbf79',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWindDirection(params) {
          return command({
              method: 'getWindDirection',
              methodId: 'pWG01FOE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWindSpeed(params) {
          return command({
              method: 'getWindSpeed',
              methodId: 'pNnZEPYz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkMode(params) {
          return command({
              method: 'getWorkMode',
              methodId: 'pj7xBmgW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAnion(params) {
          return command({
              method: 'setAnion',
              methodId: 'pkp1q4Mq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setChildLock(params) {
          return command({
              method: 'setChildLock',
              methodId: 'pz93i0Wk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'pZgRT3Ed',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setManualOscillating(params) {
          return command({
              method: 'setManualOscillating',
              methodId: 'pdN7zsix',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setManualTipOver(params) {
          return command({
              method: 'setManualTipOver',
              methodId: 'ptRS9D2G',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setOscillatingRange(params) {
          return command({
              method: 'setOscillatingRange',
              methodId: 'phEqKYu3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setOscillatingSwitch(params) {
          return command({
              method: 'setOscillatingSwitch',
              methodId: 'pgh0mcQV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setScreenSwitch(params) {
          return command({
              method: 'setScreenSwitch',
              methodId: 'p3deoutb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSmart(params) {
          return command({
              method: 'setSmart',
              methodId: 'p0crOKb1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStrong(params) {
          return command({
              method: 'setStrong',
              methodId: 'pBTQtlLo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3nfNC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTipOverRange(params) {
          return command({
              method: 'setTipOverRange',
              methodId: 'pDrhFbrS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTipOverSwitch(params) {
          return command({
              method: 'setTipOverSwitch',
              methodId: 'p1vFjx3L',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWindDirection(params) {
          return command({
              method: 'setWindDirection',
              methodId: 'pGoxHG1Z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWindSpeed(params) {
          return command({
              method: 'setWindSpeed',
              methodId: 'pUPQ8V5r',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWorkMode(params) {
          return command({
              method: 'setWorkMode',
              methodId: 'ppAXISOA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class AirQualityMonitor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030020';
      }

      get categoryName() {
          return '\u7a7a\u6c14\u8d28\u91cf\u68c0\u6d4b\u4eea';
      }

      getAirQualityIndex(params) {
          return command({
              method: 'getAirQualityIndex',
              methodId: 'ppAXISSd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCh2oValue(params) {
          return command({
              method: 'getCh2oValue',
              methodId: 'peH3nfqr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCo2Value(params) {
          return command({
              method: 'getCo2Value',
              methodId: 'pGoxHGIS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getHumidityValue(params) {
          return command({
              method: 'getHumidityValue',
              methodId: 'pUPQ8VCZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPm10Value(params) {
          return command({
              method: 'getPm10Value',
              methodId: 'pDrhFbj3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPm1Value(params) {
          return command({
              method: 'getPm1Value',
              methodId: 'p1vFjxTV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPm2_5Value(params) {
          return command({
              method: 'getPm2_5Value',
              methodId: 'pgh0mcaG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTempCurrent(params) {
          return command({
              method: 'getTempCurrent',
              methodId: 'pZgRT3lL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getVocValue(params) {
          return command({
              method: 'getVocValue',
              methodId: 'phEqKY6x',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class WaterQualityDetector {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030021';
      }

      get categoryName() {
          return '\u6c34\u8d28\u68c0\u6d4b\u4eea';
      }

      getAmmonia(params) {
          return command({
              method: 'getAmmonia',
              methodId: 'pXZu75iE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getBlueGreenAlgae(params) {
          return command({
              method: 'getBlueGreenAlgae',
              methodId: 'pWG01FbK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCOD(params) {
          return command({
              method: 'getCOD',
              methodId: 'p1vFjxYG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getChlorideIon(params) {
          return command({
              method: 'getChlorideIon',
              methodId: 'pDrhFbNx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getChlorineDioxide(params) {
          return command({
              method: 'getChlorineDioxide',
              methodId: 'UmaS3OU5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getChlorophyll(params) {
          return command({
              method: 'getChlorophyll',
              methodId: 'ptRS9DEk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getConductivity(params) {
          return command({
              method: 'getConductivity',
              methodId: 'pz93iMQW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDissolvedOxygen(params) {
          return command({
              method: 'getDissolvedOxygen',
              methodId: 'pBTQtl2I',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFluorideIon(params) {
          return command({
              method: 'getFluorideIon',
              methodId: 'pj7xBmt9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLowRangeLaserTurbidity(params) {
          return command({
              method: 'getLowRangeLaserTurbidity',
              methodId: 'pkp1q4rR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getNitrate(params) {
          return command({
              method: 'getNitrate',
              methodId: 'phEqKY5q',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getORP(params) {
          return command({
              method: 'getORP',
              methodId: 'pGoxHGg3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOilInWater(params) {
          return command({
              method: 'getOilInWater',
              methodId: 'pdN7zs11',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOzone(params) {
          return command({
              method: 'getOzone',
              methodId: 'pgh0mcOb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPH(params) {
          return command({
              method: 'getPH',
              methodId: 'pZgRT3pV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getResidualChlorine(params) {
          return command({
              method: 'getResidualChlorine',
              methodId: 'pUPQ8VLS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSalinity(params) {
          return command({
              method: 'getSalinity',
              methodId: 'pqYhWwWM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSludgeConcentration(params) {
          return command({
              method: 'getSludgeConcentration',
              methodId: 'UnfcbfLl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSuspendedSolids(params) {
          return command({
              method: 'getSuspendedSolids',
              methodId: 'pNnZEPBn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXISbL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTDS(params) {
          return command({
              method: 'getTDS',
              methodId: 'UODeXyYP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemperature(params) {
          return command({
              method: 'getTemperature',
              methodId: 'UaMCfjKm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTurbidity(params) {
          return command({
              method: 'getTurbidity',
              methodId: 'p0crOKuz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWaterHardness(params) {
          return command({
              method: 'getWaterHardness',
              methodId: 'p3deou3o',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3nfWZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ColorSensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030022';
      }

      get categoryName() {
          return '\u989c\u8272\u4f20\u611f\u5668';
      }

      getColor(params) {
          return command({
              method: 'getColor',
              methodId: 'pZgRT3FG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQ8VH3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3nLnS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setToDefault(params) {
          return command({
              method: 'setToDefault',
              methodId: 'ppAXIS8V',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class UVSensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030023';
      }

      get categoryName() {
          return '\u7d2b\u5916\u7ebf\u4f20\u611f\u5668';
      }

      getIntensity(params) {
          return command({
              method: 'getIntensity',
              methodId: 'pUPQ8V2x',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXISuG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3nLQ3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ParticleSensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030024';
      }

      get categoryName() {
          return '\u9897\u7c92\u7269\u4f20\u611f\u5668';
      }

      getNumber0_3(params) {
          return command({
              method: 'getNumber0_3',
              methodId: 'pDrhF8nR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getNumber0_5(params) {
          return command({
              method: 'getNumber0_5',
              methodId: 'p1vFjxPo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getNumber1(params) {
          return command({
              method: 'getNumber1',
              methodId: 'pGoxHGd1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getNumber10(params) {
          return command({
              method: 'getNumber10',
              methodId: 'pZgRT3Gk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getNumber2_5(params) {
          return command({
              method: 'getNumber2_5',
              methodId: 'pUPQ8Voq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getNumber5(params) {
          return command({
              method: 'getNumber5',
              methodId: 'ppAXIS6b',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPm1(params) {
          return command({
              method: 'getPm1',
              methodId: 'p3deou09',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPm10(params) {
          return command({
              method: 'getPm10',
              methodId: 'pdN7zshE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPm2_5(params) {
          return command({
              method: 'getPm2_5',
              methodId: 'ptRS9DFI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pgh0mc8W',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTvoc(params) {
          return command({
              method: 'getTvoc',
              methodId: 'phEqKYHz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3nLax',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class GestureSensorSwitch {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030025';
      }

      get categoryName() {
          return '\u624b\u52bf\u611f\u5e94\u5f00\u5173';
      }

      getResult(params) {
          return command({
              method: 'getResult',
              methodId: 'pUPQ8VE1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXIS5k',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3nLAq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class FloorHeating {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030028';
      }

      get categoryName() {
          return '\u5730\u6696\u63a7\u5236\u5668';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'phEqKYl5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'pgh0mcCl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p1vFjxqM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pDrhF8SK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemperature(params) {
          return command({
              method: 'getTargetTemperature',
              methodId: 'pGoxHG0n',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'pZgRT3h9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXISHI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQ8VFE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemperature(params) {
          return command({
              method: 'setTargetTemperature',
              methodId: 'peH3nL8z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class FreshAirVentilator {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030029';
      }

      get categoryName() {
          return '\u65b0\u98ce\u673a';
      }

      getAirTemperature(params) {
          return command({
              method: 'getAirTemperature',
              methodId: 'pGoxHGMK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getHumidity(params) {
          return command({
              method: 'getHumidity',
              methodId: 'pDrhF8b5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pZgRT3wM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pgh0mcLm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemperature(params) {
          return command({
              method: 'getTemperature',
              methodId: 'p1vFjxWl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAirTemperature(params) {
          return command({
              method: 'setAirTemperature',
              methodId: 'ppAXIS29',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pUPQ8Vin',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3nLuE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartHeatPump {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030030';
      }

      get categoryName() {
          return '\u667a\u80fd\u70ed\u6cf5';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'phEqKYFU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p1vFj2nm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pDrhF88P',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemperature(params) {
          return command({
              method: 'getTargetTemperature',
              methodId: 'pGoxHGP5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pgh0mcHw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXISoM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQ8VGK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemperature(params) {
          return command({
              method: 'setTargetTemperature',
              methodId: 'peH3nL6n',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class Thermostat {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030031';
      }

      get categoryName() {
          return '\u6052\u6e29\u5668';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'phEqKYiA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'pgh0mc2C',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p1vFj2Qw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pDrhF8uU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemperature(params) {
          return command({
              method: 'getTargetTemperature',
              methodId: 'pGoxHGXP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'pZgRT33m',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXISEl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQ8V15',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemperature(params) {
          return command({
              method: 'setTargetTemperature',
              methodId: 'peH3nL5K',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class TemperatureController {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030032';
      }

      get categoryName() {
          return '\u6e29\u63a7\u5668';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'phEqKYGd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'pgh0mcor',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p1vFj2aC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pDrhF86A',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemperature(params) {
          return command({
              method: 'getTargetTemperature',
              methodId: 'pGoxHGjU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'pZgRT3Tw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXISlm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQ8VDP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemperature(params) {
          return command({
              method: 'setTargetTemperature',
              methodId: 'peH3nLC5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class TemperatureControlValve {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030033';
      }

      get categoryName() {
          return '\u6e29\u63a7\u9600';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'phEqKY1L',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'pgh0mcEZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p1vFj2Ar',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pDrhF85d',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemperature(params) {
          return command({
              method: 'getTargetTemperature',
              methodId: 'pGoxHGNA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'pZgRT3YC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXISpw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQ8VgU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemperature(params) {
          return command({
              method: 'setTargetTemperature',
              methodId: 'peH3nLfP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ElectricFireplace {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030034';
      }

      get categoryName() {
          return '\u7535\u58c1\u7089';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'phEqKYDV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'pgh0mclS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p1vFj2SZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pDrhF8CL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemperature(params) {
          return command({
              method: 'getTargetTemperature',
              methodId: 'pGoxHGqd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'pZgRT3zr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXISFC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQ8VhA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemperature(params) {
          return command({
              method: 'setTargetTemperature',
              methodId: 'peH3nLHU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class BaseboardHeater {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030035';
      }

      get categoryName() {
          return '\u8e22\u811a\u7ebf\u53d6\u6696\u5668';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'phEqKYgG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'pgh0mcp3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p1vFj2bS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pDrhF8fV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemperature(params) {
          return command({
              method: 'getTargetTemperature',
              methodId: 'pGoxHGWL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'pZgRT3MZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXISZr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQ8Vwd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemperature(params) {
          return command({
              method: 'setTargetTemperature',
              methodId: 'peH3nL2A',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class HVACController {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030036';
      }

      get categoryName() {
          return '\u6696\u901a\u5668';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'phEqKYhb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'pgh0mcFx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p1vFj283',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pDrhF8HG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemperature(params) {
          return command({
              method: 'getTargetTemperature',
              methodId: 'pGoxHJ4V',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'pZgRT3PS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXISGZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQ8VdL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemperature(params) {
          return command({
              method: 'setTargetTemperature',
              methodId: 'peH3nLod',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class TemperatureAndHumiditySwitch {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030037';
      }

      get categoryName() {
          return '\u6e29\u6e7f\u5ea6\u901a\u65ad\u5668';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXIS1S',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3nLEL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class WallMountedAirConditioner {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030042';
      }

      get categoryName() {
          return '\u6302\u5f0f\u7a7a\u8c03';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pDrhF8F9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p3deo9C5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pdN7zESl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemperature(params) {
          return command({
              method: 'getTemperature',
              methodId: 'pgh0mchn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWindDirection(params) {
          return command({
              method: 'getWindDirection',
              methodId: 'ptRS9DqK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWindRange(params) {
          return command({
              method: 'getWindRange',
              methodId: 'phEqKYzM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWindSpeed(params) {
          return command({
              method: 'getWindSpeed',
              methodId: 'pkp1qnlm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pGoxHJ8I',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pZgRTT4z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTemperature(params) {
          return command({
              method: 'setTemperature',
              methodId: 'peH3nLGo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWindDirection(params) {
          return command({
              method: 'setWindDirection',
              methodId: 'pUPQ8VBW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWindRange(params) {
          return command({
              method: 'setWindRange',
              methodId: 'ppAXISdR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWindSpeed(params) {
          return command({
              method: 'setWindSpeed',
              methodId: 'p1vFj2HE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class StandingAirConditioner {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030043';
      }

      get categoryName() {
          return '\u7acb\u5f0f\u7a7a\u8c03';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pDrhF8ZM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p3deo9fP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pdN7zEbm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemperature(params) {
          return command({
              method: 'getTemperature',
              methodId: 'pgh0mcwK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWindDirection(params) {
          return command({
              method: 'getWindDirection',
              methodId: 'ptRS9DW5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWindRange(params) {
          return command({
              method: 'getWindRange',
              methodId: 'phEqKYMl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWindSpeed(params) {
          return command({
              method: 'getWindSpeed',
              methodId: 'pkp1qnpw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pGoxHJu9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pZgRTTQE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTemperature(params) {
          return command({
              method: 'setTemperature',
              methodId: 'peH3nLJW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWindDirection(params) {
          return command({
              method: 'setWindDirection',
              methodId: 'pUPQ8VXI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWindRange(params) {
          return command({
              method: 'setWindRange',
              methodId: 'ppAXISyz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWindSpeed(params) {
          return command({
              method: 'setWindSpeed',
              methodId: 'p1vFj22n',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class PortableAirConditioner {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030044';
      }

      get categoryName() {
          return '\u79fb\u52a8\u7a7a\u8c03';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pDrhF8Gl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p3deo9HU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pdN7zE8w',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemperature(params) {
          return command({
              method: 'getTemperature',
              methodId: 'pgh0mcd5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWindDirection(params) {
          return command({
              method: 'getWindDirection',
              methodId: 'ptRS9I4P',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWindRange(params) {
          return command({
              method: 'getWindRange',
              methodId: 'phEqKYPm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWindSpeed(params) {
          return command({
              method: 'getWindSpeed',
              methodId: 'pkp1qnFC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pGoxHJ9M',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pZgRTTan',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTemperature(params) {
          return command({
              method: 'setTemperature',
              methodId: 'peH3nLDI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWindDirection(params) {
          return command({
              method: 'setWindDirection',
              methodId: 'pUPQ8Vj9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWindRange(params) {
          return command({
              method: 'setWindRange',
              methodId: 'ppAXISTE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWindSpeed(params) {
          return command({
              method: 'setWindSpeed',
              methodId: 'p1vFj2oK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class CentralAirConditioning {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030045';
      }

      get categoryName() {
          return '\u4e2d\u592e\u7a7a\u8c03';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pGoxHJ5l',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pgh0mcyP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pDrhF81m',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemperature(params) {
          return command({
              method: 'getTemperature',
              methodId: 'p1vFj2E5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWindSpeed(params) {
          return command({
              method: 'getWindSpeed',
              methodId: 'phEqKYXw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pUPQ8VVM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAXISYn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTemperature(params) {
          return command({
              method: 'setTemperature',
              methodId: 'peH3nLg9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWindSpeed(params) {
          return command({
              method: 'setWindSpeed',
              methodId: 'pZgRTTAK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class AirConditionerController {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030046';
      }

      get categoryName() {
          return '\u7a7a\u8c03\u63a7\u5236\u5668';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pGoxHJCm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pgh0mcTU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pDrhF8Dw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemperature(params) {
          return command({
              method: 'getTemperature',
              methodId: 'p1vFj2eP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWindSpeed(params) {
          return command({
              method: 'getWindSpeed',
              methodId: 'phEqKYjC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pUPQ8Vql',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAXISzK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTemperature(params) {
          return command({
              method: 'setTemperature',
              methodId: 'peH3nLKM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWindSpeed(params) {
          return command({
              method: 'setWindSpeed',
              methodId: 'pZgRTTS5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class PortableFan {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010030047';
      }

      get categoryName() {
          return '\u4fbf\u643a\u98ce\u6247';
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'pZgRTTvP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQ8VWm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'ppAXISM5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3nLwl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class GasWaterHeater {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040003';
      }

      get categoryName() {
          return '\u71c3\u6c14\u70ed\u6c34\u5668';
      }

      getAirPressure(params) {
          return command({
              method: 'getAirPressure',
              methodId: 'pNnZFmin',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getBathMode(params) {
          return command({
              method: 'getBathMode',
              methodId: 'p0cr80Xz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCOAlarm(params) {
          return command({
              method: 'getCOAlarm',
              methodId: 'pqYwmPwM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getChildLock(params) {
          return command({
              method: 'getChildLock',
              methodId: 'ptRSCYAk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentWaterTemperature(params) {
          return command({
              method: 'getCurrentWaterTemperature',
              methodId: 'pXZuHluE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getEnergySavingMode(params) {
          return command({
              method: 'getEnergySavingMode',
              methodId: 'pkpDnu1R',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFreezeAlarm(params) {
          return command({
              method: 'getFreezeAlarm',
              methodId: 'UODeNjpP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGasConsumptionInThePastDay(params) {
          return command({
              method: 'getGasConsumptionInThePastDay',
              methodId: 'UaMCoOLm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGasConsumptionInThePastHour(params) {
          return command({
              method: 'getGasConsumptionInThePastHour',
              methodId: 'Unfc9UWl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSeasonalMode(params) {
          return command({
              method: 'getSeasonalMode',
              methodId: 'p3delsEo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSelfCleaningMode(params) {
          return command({
              method: 'getSelfCleaningMode',
              methodId: 'pBTQTKQI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'phEqdqVq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getVariableFrequencyHeating(params) {
          return command({
              method: 'getVariableFrequencyHeating',
              methodId: 'pz93I4yW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWaterConsumptionInThePastDay(params) {
          return command({
              method: 'getWaterConsumptionInThePastDay',
              methodId: 'UmaSzfb5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWaterConsumptionInThePastHour(params) {
          return command({
              method: 'getWaterConsumptionInThePastHour',
              methodId: 'pWG0KwMK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWaterPressure(params) {
          return command({
              method: 'getWaterPressure',
              methodId: 'pj7xj529',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWaterTemperature(params) {
          return command({
              method: 'getWaterTemperature',
              methodId: 'pdN7PD51',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBathMode(params) {
          return command({
              method: 'setBathMode',
              methodId: 'pDrhJxgx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setChildLock(params) {
          return command({
              method: 'setChildLock',
              methodId: 'ppAXwfML',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setEnergySavingMode(params) {
          return command({
              method: 'setEnergySavingMode',
              methodId: 'pGoxs3f3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSeasonalMode(params) {
          return command({
              method: 'setSeasonalMode',
              methodId: 'pZgR0VvV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSelCleaningMode(params) {
          return command({
              method: 'setSelCleaningMode',
              methodId: 'pgh0vbYb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3AFwZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setVariableFrequencyHeating(params) {
          return command({
              method: 'setVariableFrequencyHeating',
              methodId: 'p1vFcGpG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWaterTemperature(params) {
          return command({
              method: 'setWaterTemperature',
              methodId: 'pUPQ5OWS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class AirConditioner {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040004';
      }

      get categoryName() {
          return '\u667a\u80fd\u7a7a\u8c03';
      }

      getChildLock(params) {
          return command({
              method: 'getChildLock',
              methodId: 'pz93I4TI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentHumidity(params) {
          return command({
              method: 'getCurrentHumidity',
              methodId: 'pXZuHl6n',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pBTQTKa9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getEcoMode(params) {
          return command({
              method: 'getEcoMode',
              methodId: 'UmaSzf8P',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getHumidity(params) {
          return command({
              method: 'getHumidity',
              methodId: 'pNnZFmGK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getIndicatorSwitch(params) {
          return command({
              method: 'getIndicatorSwitch',
              methodId: 'pkpDnuDz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'UaMCoOHw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSleepMode(params) {
          return command({
              method: 'getSleepMode',
              methodId: 'p0cr80jE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'Unfc9Fnm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemperature(params) {
          return command({
              method: 'getTemperature',
              methodId: 'pj7xj5oM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWindDirection(params) {
          return command({
              method: 'getWindDirection',
              methodId: 'pWG0KwP5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWindRange(params) {
          return command({
              method: 'getWindRange',
              methodId: 'pqYwmPdl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWindSpeed(params) {
          return command({
              method: 'getWindSpeed',
              methodId: 'UODeNjFU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setChildLock(params) {
          return command({
              method: 'setChildLock',
              methodId: 'pUPQ5S43',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setEcoMode(params) {
          return command({
              method: 'setEcoMode',
              methodId: 'phEqdqq1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setHumidity(params) {
          return command({
              method: 'setHumidity',
              methodId: 'pGoxs3Hx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIndicatorSwitch(params) {
          return command({
              method: 'setIndicatorSwitch',
              methodId: 'peH3AFdS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ptRSCYSo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setRemoveFaultAlarm(params) {
          return command({
              method: 'setRemoveFaultAlarm',
              methodId: 'p3delseW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSleepMode(params) {
          return command({
              method: 'setSleepMode',
              methodId: 'pZgR0V8G',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pgh0vbzk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTemperature(params) {
          return command({
              method: 'setTemperature',
              methodId: 'ppAXwfBV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWindDirection(params) {
          return command({
              method: 'setWindDirection',
              methodId: 'pDrhJxKq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWindRange(params) {
          return command({
              method: 'setWindRange',
              methodId: 'p1vFcGFb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWindSpeed(params) {
          return command({
              method: 'setWindSpeed',
              methodId: 'pdN7PDCR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class WashingMachine {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040006';
      }

      get categoryName() {
          return '\u6d17\u8863\u673a';
      }

      getBuzzerSwitch(params) {
          return command({
              method: 'getBuzzerSwitch',
              methodId: 'UaMCoOor',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getChildrenLock(params) {
          return command({
              method: 'getChildrenLock',
              methodId: 'UmaSzf6A',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFilterCleanReminder(params) {
          return command({
              method: 'getFilterCleanReminder',
              methodId: 'UODeNjGd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLaundryMode(params) {
          return command({
              method: 'getLaundryMode',
              methodId: 'pNnZFmDP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLaundryRemainTime(params) {
          return command({
              method: 'getLaundryRemainTime',
              methodId: 'pXZuHlC5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLaundryTemperature(params) {
          return command({
              method: 'getLaundryTemperature',
              methodId: 'pj7xj5lm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLaundryTime(params) {
          return command({
              method: 'getLaundryTime',
              methodId: 'pBTQTKSl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOperatingStatus(params) {
          return command({
              method: 'getOperatingStatus',
              methodId: 'p0cr80qK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRinsingTimes(params) {
          return command({
              method: 'getRinsingTimes',
              methodId: 'Unfc9FaC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSpeed(params) {
          return command({
              method: 'getSpeed',
              methodId: 'pqYwmPTw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pz93I4zM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWaterVolume(params) {
          return command({
              method: 'getWaterVolume',
              methodId: 'pdN7PDHE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBuzzerSwitch(params) {
          return command({
              method: 'setBuzzerSwitch',
              methodId: 'pkpDnuhn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setChildrenLock(params) {
          return command({
              method: 'setChildrenLock',
              methodId: 'phEqdc4z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDehydrationSpeed(params) {
          return command({
              method: 'setDehydrationSpeed',
              methodId: 'pgh0vbBW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLaundryMode(params) {
          return command({
              method: 'setLaundryMode',
              methodId: 'pGoxs3o1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLaundryTemperature(params) {
          return command({
              method: 'setLaundryTemperature',
              methodId: 'pZgR0V9k',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLaundryTime(params) {
          return command({
              method: 'setLaundryTime',
              methodId: 'pUPQ5Smq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setOperatingStatus(params) {
          return command({
              method: 'setOperatingStatus',
              methodId: 'ppAXwfjb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setRinsingTimes(params) {
          return command({
              method: 'setRinsingTimes',
              methodId: 'pDrhJxdR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSpeed(params) {
          return command({
              method: 'setSpeed',
              methodId: 'p1vFcGGo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3AFTx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWaterVolume(params) {
          return command({
              method: 'setWaterVolume',
              methodId: 'ptRSCY8I',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartClothesHanger {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040007';
      }

      get categoryName() {
          return '\u667e\u8863\u67b6';
      }

      getLightSwitch(params) {
          return command({
              method: 'getLightSwitch',
              methodId: 'p3delsZM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pdN7PD2n',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPosition(params) {
          return command({
              method: 'getPosition',
              methodId: 'pDrhJxyz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'phEqdcQE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkRemainTime(params) {
          return command({
              method: 'getWorkRemainTime',
              methodId: 'pgh0vbXI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkTime(params) {
          return command({
              method: 'getWorkTime',
              methodId: 'ptRSCYu9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDirectionControl(params) {
          return command({
              method: 'setDirectionControl',
              methodId: 'pGoxs3ER',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLightSwitch(params) {
          return command({
              method: 'setLightSwitch',
              methodId: 'p1vFcGJW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pZgR0V5o',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPosition(params) {
          return command({
              method: 'setPosition',
              methodId: 'peH3AFkq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAXwfVk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWorktTime(params) {
          return command({
              method: 'setWorktTime',
              methodId: 'pUPQ5SA1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class BathHeater {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040008';
      }

      get categoryName() {
          return '\u6d74\u9738';
      }

      getAirExchangeSwitch(params) {
          return command({
              method: 'getAirExchangeSwitch',
              methodId: 'pj7xj5FC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'pz93I4Pm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pBTQTK8w',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDefrostSwitch(params) {
          return command({
              method: 'getDefrostSwitch',
              methodId: 'pNnZFmhA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLight(params) {
          return command({
              method: 'getLight',
              methodId: 'pdN7PDoK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwingSwitch(params) {
          return command({
              method: 'getSwingSwitch',
              methodId: 'pXZuHlHU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ptRSCY9M',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemperature(params) {
          return command({
              method: 'getTargetTemperature',
              methodId: 'p0cr8M4P',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWarmLight1(params) {
          return command({
              method: 'getWarmLight1',
              methodId: 'p3delsGl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWarmLight2(params) {
          return command({
              method: 'getWarmLight2',
              methodId: 'pkpDnud5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAirExchangeSwitch(params) {
          return command({
              method: 'setAirExchangeSwitch',
              methodId: 'pgh0vbj9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'pGoxs3ez',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDefrostSwitch(params) {
          return command({
              method: 'setDefrostSwitch',
              methodId: 'phEqdcan',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLight(params) {
          return command({
              method: 'setLight',
              methodId: 'ppAXwfqo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwingSwitch(params) {
          return command({
              method: 'setSwingSwitch',
              methodId: 'pDrhJxTE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3AFz1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemperature(params) {
          return command({
              method: 'setTargetTemperature',
              methodId: 'p1vFcGDI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWarmLight1(params) {
          return command({
              method: 'setWarmLight1',
              methodId: 'pUPQ5SSR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWarmLight2(params) {
          return command({
              method: 'setWarmLight2',
              methodId: 'pZgR0V7W',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class HomeDehumidifier {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040009';
      }

      get categoryName() {
          return '\u5bb6\u7528\u9664\u6e7f\u673a';
      }

      getCurrentHumidity(params) {
          return command({
              method: 'getCurrentHumidity',
              methodId: 'p1vFcGg9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pGoxs3pE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getHumidity(params) {
          return command({
              method: 'getHumidity',
              methodId: 'pDrhJxYn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'phEqdcAK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pgh0vbVM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWindSpeed(params) {
          return command({
              method: 'getWindSpeed',
              methodId: 'ptRSCY5l',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setHumidity(params) {
          return command({
              method: 'setHumidity',
              methodId: 'peH3AFMR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pUPQ5Svz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAXwfcW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWindSpeed(params) {
          return command({
              method: 'setWindSpeed',
              methodId: 'pZgR0VfI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartToilet {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040010';
      }

      get categoryName() {
          return '\u667a\u80fd\u9a6c\u6876';
      }

      getAutoFlipLid(params) {
          return command({
              method: 'getAutoFlipLid',
              methodId: 'Unfc9F83',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAutoFlipRing(params) {
          return command({
              method: 'getAutoFlipRing',
              methodId: 'pWG0Kt4V',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'UUUlpedK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDeodorization(params) {
          return command({
              method: 'getDeodorization',
              methodId: 'UZ6IQ6Pl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDisinfect(params) {
          return command({
              method: 'getDisinfect',
              methodId: 'UmaSzfHG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDryingRemainingTime(params) {
          return command({
              method: 'getDryingRemainingTime',
              methodId: 'UsRc3469',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDryingTemperature(params) {
          return command({
              method: 'getDryingTemperature',
              methodId: 'UHww1ojI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDryingTime(params) {
          return command({
              method: 'getDryingTime',
              methodId: 'U2eMbuaE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFlipLid(params) {
          return command({
              method: 'getFlipLid',
              methodId: 'UlyCXgGM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFlipRing(params) {
          return command({
              method: 'getFlipRing',
              methodId: 'UEqvf0sn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFlushGear(params) {
          return command({
              method: 'getFlushGear',
              methodId: 'UJTjRPRm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFlushMode(params) {
          return command({
              method: 'getFlushMode',
              methodId: 'UiWTgmn5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getNozzleSelfCleaning(params) {
          return command({
              method: 'getNozzleSelfCleaning',
              methodId: 'UCb2EkDW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSeatCurrentTemperature(params) {
          return command({
              method: 'getSeatCurrentTemperature',
              methodId: 'pqYwmPPS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSeatTemperature(params) {
          return command({
              method: 'getSeatTemperature',
              methodId: 'pNnZFmdL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSeated(params) {
          return command({
              method: 'getSeated',
              methodId: 'UaMCoOFx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'UfjZW1Tz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWashGear(params) {
          return command({
              method: 'getWashGear',
              methodId: 'U5suMqlR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWashMode(params) {
          return command({
              method: 'getWashMode',
              methodId: 'U9Km7bCo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWashPosition(params) {
          return command({
              method: 'getWashPosition',
              methodId: 'UODeNjhb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWashRemainingTime(params) {
          return command({
              method: 'getWashRemainingTime',
              methodId: 'URPrtxS1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWashTemperature(params) {
          return command({
              method: 'getWashTemperature',
              methodId: 'UvxDiyzq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWashTime(params) {
          return command({
              method: 'getWashTime',
              methodId: 'U8OTOiqk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAutoFlipLid(params) {
          return command({
              method: 'setAutoFlipLid',
              methodId: 'pUPQ5S8E',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAutoFlipRing(params) {
          return command({
              method: 'setAutoFlipRing',
              methodId: 'ppAXwL4I',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDeodorization(params) {
          return command({
              method: 'setDeodorization',
              methodId: 'pBTQTK9r',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDisinfect(params) {
          return command({
              method: 'setDisinfect',
              methodId: 'pZgR0VH9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDryingTemperature(params) {
          return command({
              method: 'setDryingTemperature',
              methodId: 'p3delsDw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDryingTime(params) {
          return command({
              method: 'setDryingTime',
              methodId: 'pkpDnuTU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFlipLid(params) {
          return command({
              method: 'setFlipLid',
              methodId: 'p0cr8MaA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFlipRing(params) {
          return command({
              method: 'setFlipRing',
              methodId: 'pz93I4jC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFlushGear(params) {
          return command({
              method: 'setFlushGear',
              methodId: 'pj7xj5GZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFlushMode(params) {
          return command({
              method: 'setFlushMode',
              methodId: 'pXZuHlod',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setNozzleSelfCleaning(params) {
          return command({
              method: 'setNozzleSelfCleaning',
              methodId: 'ptRSCYCm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSeatTemperature(params) {
          return command({
              method: 'setSeatTemperature',
              methodId: 'peH3AFBz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pdN7PDeP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWashGear(params) {
          return command({
              method: 'setWashGear',
              methodId: 'phEqdcS5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWashMode(params) {
          return command({
              method: 'setWashMode',
              methodId: 'pgh0vbql',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWashPosition(params) {
          return command({
              method: 'setWashPosition',
              methodId: 'pGoxs3Fn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWashTemperature(params) {
          return command({
              method: 'setWashTemperature',
              methodId: 'p1vFcGKM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWashTime(params) {
          return command({
              method: 'setWashTime',
              methodId: 'pDrhJxzK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartClock {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040012';
      }

      get categoryName() {
          return '\u667a\u80fd\u95f9\u949f';
      }

      getClock(params) {
          return command({
              method: 'getClock',
              methodId: 'pz93I4qZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode24H(params) {
          return command({
              method: 'getMode24H',
              methodId: 'pNnZFmTG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getNightModeSwitch(params) {
          return command({
              method: 'getNightModeSwitch',
              methodId: 'pj7xj5D3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getNightModeTime(params) {
          return command({
              method: 'getNightModeTime',
              methodId: 'pXZuHleV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getReminder(params) {
          return command({
              method: 'getReminder',
              methodId: 'p0cr8MSL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRingtone(params) {
          return command({
              method: 'getRingtone',
              methodId: 'p3delsKr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getScreenBrightness(params) {
          return command({
              method: 'getScreenBrightness',
              methodId: 'pBTQTKCS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pkpDnuzd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getVolume(params) {
          return command({
              method: 'getVolume',
              methodId: 'pdN7PDFA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setClock(params) {
          return command({
              method: 'setClock',
              methodId: 'ppAXwLmM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode24H(params) {
          return command({
              method: 'setMode24H',
              methodId: 'ptRSCYHC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMute(params) {
          return command({
              method: 'setMute',
              methodId: 'peH3AFjn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setNightModeSwitch(params) {
          return command({
              method: 'setNightModeSwitch',
              methodId: 'phEqdc8U',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setNightModeTime(params) {
          return command({
              method: 'setNightModeTime',
              methodId: 'pgh0v84w',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setReminder(params) {
          return command({
              method: 'setReminder',
              methodId: 'pZgR0Vol',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setRingtone(params) {
          return command({
              method: 'setRingtone',
              methodId: 'pGoxs3G5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setScreenBrightness(params) {
          return command({
              method: 'setScreenBrightness',
              methodId: 'pDrhJxBP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'p1vFcGdm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setVolume(params) {
          return command({
              method: 'setVolume',
              methodId: 'pUPQ5S9K',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ShowerColumn {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040014';
      }

      get categoryName() {
          return '\u6dcb\u6d74\u67f1';
      }

      getFlowSpeed(params) {
          return command({
              method: 'getFlowSpeed',
              methodId: 'pZgR0Vew',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vFcGTC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemperature(params) {
          return command({
              method: 'getTemperature',
              methodId: 'pGoxs3DU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFlowSpeed(params) {
          return command({
              method: 'setFlowSpeed',
              methodId: 'ppAXwLSm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQ5S7P',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTemperature(params) {
          return command({
              method: 'setTemperature',
              methodId: 'peH3AFq5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class CarFridge {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040016';
      }

      get categoryName() {
          return '\u8f66\u8f7d\u51b0\u7bb1';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'p1vFcGzZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDoorStatus(params) {
          return command({
              method: 'getDoorStatus',
              methodId: 'pZgR0VUr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGoxs3Kd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemperature(params) {
          return command({
              method: 'getTargetTemperature',
              methodId: 'pUPQ5SHA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAXwL8C',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemperature(params) {
          return command({
              method: 'setTargetTemperature',
              methodId: 'peH3AZ4U',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class MosquitoRepellentHeater {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040017';
      }

      get categoryName() {
          return '\u868a\u9999\u52a0\u70ed\u5668';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXwLRr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3AZQA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartMosquitoRepellent {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040018';
      }

      get categoryName() {
          return '\u667a\u80fd\u868a\u9999';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXwL9Z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3AZmd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ShoeCabinet {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040019';
      }

      get categoryName() {
          return '\u978b\u67dc';
      }

      getDryingSwitch(params) {
          return command({
              method: 'getDryingSwitch',
              methodId: 'pDrhJ2Qb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'phEqdcxk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vFcGXx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getUVSwitch(params) {
          return command({
              method: 'getUVSwitch',
              methodId: 'pGoxs3yG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pgh0v8Rq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDryingSwitch(params) {
          return command({
              method: 'setDryingSwitch',
              methodId: 'pUPQ5SsV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'pZgR0VJ3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAXwL5S',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setUVSwitch(params) {
          return command({
              method: 'setUVSwitch',
              methodId: 'peH3AZAL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ShoeCabinetSterilizer {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040020';
      }

      get categoryName() {
          return '\u978b\u67dc\u706d\u83cc\u5668';
      }

      getDryingSwitch(params) {
          return command({
              method: 'getDryingSwitch',
              methodId: 'pDrhJ2mk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'phEqdcoo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vFcGrq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getUVSwitch(params) {
          return command({
              method: 'getUVSwitch',
              methodId: 'pGoxs3Tb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pgh0v891',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDryingSwitch(params) {
          return command({
              method: 'setDryingSwitch',
              methodId: 'pUPQ5SeG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'pZgR0VDx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAXwL73',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setUVSwitch(params) {
          return command({
              method: 'setUVSwitch',
              methodId: 'peH3AZOV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ShoeWasher {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040021';
      }

      get categoryName() {
          return '\u6d17\u978b\u673a';
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pdN7PDyI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOperatingStatus(params) {
          return command({
              method: 'getOperatingStatus',
              methodId: 'p1vFcGV1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'pDrhJ2Ao',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p3delsXE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWashTemperature(params) {
          return command({
              method: 'getWashTemperature',
              methodId: 'pgh0v85R',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWashTime(params) {
          return command({
              method: 'getWashTime',
              methodId: 'ptRSCYJz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWaterVolume(params) {
          return command({
              method: 'getWaterVolume',
              methodId: 'phEqdcsW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pZgR0VIq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pGoxs3kk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWashTemperature(params) {
          return command({
              method: 'setWashTemperature',
              methodId: 'peH3AZvG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWashTime(params) {
          return command({
              method: 'setWashTime',
              methodId: 'pUPQ5Spb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWaterVolume(params) {
          return command({
              method: 'setWaterVolume',
              methodId: 'ppAXwLfx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class Bathtub {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040022';
      }

      get categoryName() {
          return '\u6d74\u7f38';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pgh0v87z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pGoxs3zo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vFcGqR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemperature(params) {
          return command({
              method: 'getTargetTemperature',
              methodId: 'pZgR0VK1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pDrhJ2OW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXwLLq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQ5SUk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemperature(params) {
          return command({
              method: 'setTargetTemperature',
              methodId: 'peH3AZ8b',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class WaterHeater {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040023';
      }

      get categoryName() {
          return '\u70ed\u6c34\u5668';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pgh0v8fE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pGoxs30W',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vFcGcz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemperature(params) {
          return command({
              method: 'getTargetTemperature',
              methodId: 'pZgR0VwR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pDrhJ2vI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXwLx1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQ5SZo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemperature(params) {
          return command({
              method: 'setTargetTemperature',
              methodId: 'peH3AZRk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class AirSourceHeatPumpHeater {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040024';
      }

      get categoryName() {
          return '\u7a7a\u6c14\u80fd\u70ed\u6c34\u5668';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pgh0v8Hn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pGoxs3BI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vFcJ4E',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemperature(params) {
          return command({
              method: 'getTargetTemperature',
              methodId: 'pZgR0Vtz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pDrhJ289',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXwLoR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQ5SiW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemperature(params) {
          return command({
              method: 'setTargetTemperature',
              methodId: 'peH3AZ9o',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class HotWaterCirculationPump {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040025';
      }

      get categoryName() {
          return '\u70ed\u6c34\u5faa\u73af\u6cf5';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pgh0v8xK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pGoxs3X9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vFcJQn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemperature(params) {
          return command({
              method: 'getTargetTemperature',
              methodId: 'pZgR0VyE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pDrhJ2RM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXwLsz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQ5SJI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemperature(params) {
          return command({
              method: 'setTargetTemperature',
              methodId: 'peH3AZ6W',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SolarWaterHeater {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040026';
      }

      get categoryName() {
          return '\u592a\u9633\u80fd\u70ed\u6c34\u5668';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pgh0v8o5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pGoxs3rM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vFcJmK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemperature(params) {
          return command({
              method: 'getTargetTemperature',
              methodId: 'pZgR0VTn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pDrhJ29l',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXwLeE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQ5SD9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemperature(params) {
          return command({
              method: 'setTargetTemperature',
              methodId: 'peH3AZ7I',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class Deodorizer {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040027';
      }

      get categoryName() {
          return '\u9664\u5473\u5668';
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'pDrhJ25m',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pZgR0VkK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGoxs3Vl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'p1vFcJA5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'pUPQ5SIM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'peH3AZf9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAXwLpn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class VacuumCleaner {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040028';
      }

      get categoryName() {
          return '\u5438\u5c18\u5668';
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p1vFcJOP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOperatingStatus(params) {
          return command({
              method: 'getOperatingStatus',
              methodId: 'pZgR0Vz5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSuction(params) {
          return command({
              method: 'getSuction',
              methodId: 'pGoxs3qm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pDrhJ27w',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXwLUK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSuction(params) {
          return command({
              method: 'setSuction',
              methodId: 'peH3AZLM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQ5SKl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ElectricHeatingTable {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040029';
      }

      get categoryName() {
          return '\u7535\u6696\u684c';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'phEqdcIr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'pgh0v8pA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p1vFcJvU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pDrhJ2fC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemperature(params) {
          return command({
              method: 'getTargetTemperature',
              methodId: 'pGoxs3cw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'pZgR0V0P',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXwLZ5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQ5Swm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemperature(params) {
          return command({
              method: 'setTargetTemperature',
              methodId: 'peH3AZxl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ShoeCareMachine {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040030';
      }

      get categoryName() {
          return '\u978b\u7c7b\u62a4\u7406\u673a';
      }

      getDryingSwitch(params) {
          return command({
              method: 'getDryingSwitch',
              methodId: 'pDrhJ2Lr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'phEqdcKZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vFcJ8A',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getUVSwitch(params) {
          return command({
              method: 'getUVSwitch',
              methodId: 'pGoxsT4C',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pgh0v8Ud',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDryingSwitch(params) {
          return command({
              method: 'setDryingSwitch',
              methodId: 'pUPQ5Stw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'pZgR0VBU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAXwLiP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setUVSwitch(params) {
          return command({
              method: 'setUVSwitch',
              methodId: 'peH3AZom',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class GarmentCareMachine {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040031';
      }

      get categoryName() {
          return '\u8863\u7269\u62a4\u7406\u673a';
      }

      getDryingSwitch(params) {
          return command({
              method: 'getDryingSwitch',
              methodId: 'phEqdcwS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'pdN7PDc3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pDrhJ2xZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pgh0v8ZL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getUVSwitch(params) {
          return command({
              method: 'getUVSwitch',
              methodId: 'p1vFcJRd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'ptRSCY0V',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDryingSwitch(params) {
          return command({
              method: 'setDryingSwitch',
              methodId: 'pZgR0VXA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'pGoxsTnr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXwLJU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQ5SyC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setUVSwitch(params) {
          return command({
              method: 'setUVSwitch',
              methodId: 'peH3AZsw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ClothesDryer {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040032';
      }

      get categoryName() {
          return '\u8863\u7269\u70d8\u5e72\u673a';
      }

      getDryingSwitch(params) {
          return command({
              method: 'getDryingSwitch',
              methodId: 'phEqdct3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'pdN7PI4x',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pDrhJ2oS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pgh0v8iV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getUVSwitch(params) {
          return command({
              method: 'getUVSwitch',
              methodId: 'p1vFcJ9L',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'ptRSCYBG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDryingSwitch(params) {
          return command({
              method: 'setDryingSwitch',
              methodId: 'pZgR0Vrd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'pGoxsTmZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXwLDA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQ5S3r',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setUVSwitch(params) {
          return command({
              method: 'setUVSwitch',
              methodId: 'peH3AZeC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class RoboticVacuumandMopCombo {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040033';
      }

      get categoryName() {
          return '\u626b\u62d6\u4e00\u4f53\u673a';
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pGoxsTAS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getStatus(params) {
          return command({
              method: 'getStatus',
              methodId: 'pDrhJ2s3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vFcJ6V',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'peH3AZlr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'ppAXwLId',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'pZgR0VVL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQ5SkZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class MoppingRobot {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040034';
      }

      get categoryName() {
          return '\u64e6\u5730\u673a\u5668\u4eba';
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pGoxsTO3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getStatus(params) {
          return command({
              method: 'getStatus',
              methodId: 'pDrhJ2ex',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vFcJ7G',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'peH3AZUZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'ppAXwLKL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'pZgR0VNV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQ5SzS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class WindowCleaningRobot {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040035';
      }

      get categoryName() {
          return '\u64e6\u7a97\u673a\u5668\u4eba';
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pGoxsTvx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getStatus(params) {
          return command({
              method: 'getStatus',
              methodId: 'pDrhJ2lq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vFcJfb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'peH3AZZS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'ppAXwLhV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'pZgR0VcG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQ5S03',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SunshadeCanopy {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040036';
      }

      get categoryName() {
          return '\u906e\u9633\u68da';
      }

      getAdjustDirection(params) {
          return command({
              method: 'getAdjustDirection',
              methodId: 'pDrhJ2U1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentPosition(params) {
          return command({
              method: 'getCurrentPosition',
              methodId: 'p3delE7I',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLedBrightness(params) {
          return command({
              method: 'getLedBrightness',
              methodId: 'ptRSCYNW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLedSwitch(params) {
          return command({
              method: 'getLedSwitch',
              methodId: 'pdN7PIOz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pgh0v8Ko',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetPosition(params) {
          return command({
              method: 'getTargetPosition',
              methodId: 'p1vFcJLk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'phEqdczR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAdjustDirection(params) {
          return command({
              method: 'setAdjustDirection',
              methodId: 'ppAXwLtG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLedBrightness(params) {
          return command({
              method: 'setLedBrightness',
              methodId: 'pZgR0N4b',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLedSwitch(params) {
          return command({
              method: 'setLedSwitch',
              methodId: 'pGoxsTbq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQ5SBx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetPosition(params) {
          return command({
              method: 'setTargetPosition',
              methodId: 'peH3AZi3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class CurtainRemoteController {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040037';
      }

      get categoryName() {
          return '\u7a97\u5e18\u9065\u63a7\u5668';
      }

      getAdjustDirection(params) {
          return command({
              method: 'getAdjustDirection',
              methodId: 'p1vFcJxo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetPosition(params) {
          return command({
              method: 'getTargetPosition',
              methodId: 'pGoxsTR1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAdjustDirection(params) {
          return command({
              method: 'setAdjustDirection',
              methodId: 'pZgR0Nnk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'pUPQ5SPq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'peH3AZJx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetPosition(params) {
          return command({
              method: 'setTargetPosition',
              methodId: 'ppAXwLyb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartTrashCan {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040038';
      }

      get categoryName() {
          return '\u667a\u80fd\u5783\u573e\u6876';
      }

      getCurrentCapacity(params) {
          return command({
              method: 'getCurrentCapacity',
              methodId: 'pZgR0Nmo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLidSwitch(params) {
          return command({
              method: 'getLidSwitch',
              methodId: 'pUPQ5Sr1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vFcJ2W',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTrashBoxState(params) {
          return command({
              method: 'getTrashBoxState',
              methodId: 'pGoxsT9R',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLidSwitch(params) {
          return command({
              method: 'setLidSwitch',
              methodId: 'peH3AZ1q',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAXwL3k',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class VentilationFan {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040040';
      }

      get categoryName() {
          return '\u6362\u6c14\u6247';
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'pZgR0NOI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQ5SNz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'ppAXwLYW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3AZKR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class AirConditioningFan {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040041';
      }

      get categoryName() {
          return '\u7a7a\u8c03\u6247';
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'pZgR0Nv9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQ5ScE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'ppAXwL0I',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3AZhz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class FingerRobot {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040042';
      }

      get categoryName() {
          return '\u624b\u6307\u673a\u5668\u4eba';
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pZgR0NbM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRange(params) {
          return command({
              method: 'getRange',
              methodId: 'p1vFcJUl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGoxsTLK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'peH3AZtE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setRange(params) {
          return command({
              method: 'setRange',
              methodId: 'pUPQ5v4n',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAXwLB9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartWaterDispenser {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040043';
      }

      get categoryName() {
          return '\u667a\u80fd\u996e\u6c34\u673a';
      }

      getColdStatus(params) {
          return command({
              method: 'getColdStatus',
              methodId: 'pDrhJ2hP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColdSwitch(params) {
          return command({
              method: 'getColdSwitch',
              methodId: 'pdN7PIfA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColdTemperature(params) {
          return command({
              method: 'getColdTemperature',
              methodId: 'pgh0v80w',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentColdTemperature(params) {
          return command({
              method: 'getCurrentColdTemperature',
              methodId: 'phEqdccU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentHeatTemperature(params) {
          return command({
              method: 'getCurrentHeatTemperature',
              methodId: 'p1vFcJZm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getHeatTemperature(params) {
          return command({
              method: 'getHeatTemperature',
              methodId: 'pGoxsTx5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getHeatingStatus(params) {
          return command({
              method: 'getHeatingStatus',
              methodId: 'p3delElr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getHotSwitch(params) {
          return command({
              method: 'getHotSwitch',
              methodId: 'ptRSCzvC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColdSwitch(params) {
          return command({
              method: 'setColdSwitch',
              methodId: 'pZgR0NRl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColdTemperature(params) {
          return command({
              method: 'setColdTemperature',
              methodId: 'ppAXwLPM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setHeatTemperature(params) {
          return command({
              method: 'setHeatTemperature',
              methodId: 'peH3AZyn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setHotSwitch(params) {
          return command({
              method: 'setHotSwitch',
              methodId: 'pUPQ5vnK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class NutritionalScale {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040044';
      }

      get categoryName() {
          return '\u8425\u517b\u79e4';
      }

      getWeight(params) {
          return command({
              method: 'getWeight',
              methodId: 'ppAXwLrl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setClear(params) {
          return command({
              method: 'setClear',
              methodId: 'peH3AZ3K',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ShowerEnclosure {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040045';
      }

      get categoryName() {
          return '\u6dcb\u6d74\u623f';
      }

      getFlowSpeed(params) {
          return command({
              method: 'getFlowSpeed',
              methodId: 'p1vFcJJC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pZgR0N6w',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemperature(params) {
          return command({
              method: 'getTemperature',
              methodId: 'pGoxsTsU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFlowSpeed(params) {
          return command({
              method: 'setFlowSpeed',
              methodId: 'pUPQ5vaP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3AZk5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTemperature(params) {
          return command({
              method: 'setTemperature',
              methodId: 'ppAXwLVm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class TowerFan {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040046';
      }

      get categoryName() {
          return '\u5854\u5f0f\u98ce\u6247';
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'pZgR0N7C',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQ5vOU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'ppAXwLNw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3AZYP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class HeatedTableMat {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010040047';
      }

      get categoryName() {
          return '\u52a0\u70ed\u684c\u57ab';
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'pZgR0NCr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQ5vvA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'ppAXwLcC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3AZ0U',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class RangeHood {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050001';
      }

      get categoryName() {
          return '\u62bd\u6cb9\u70df\u673a';
      }

      getAirFlowVolume(params) {
          return command({
              method: 'getAirFlowVolume',
              methodId: 'ptRSxcR1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getClean(params) {
          return command({
              method: 'getClean',
              methodId: 'pgh0uxPq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFaultAlarm(params) {
          return command({
              method: 'getFaultAlarm',
              methodId: 'pdN7VYxo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'p1vZQ3Jx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLighting(params) {
          return command({
              method: 'getLighting',
              methodId: 'pDrhgGyb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGoxpVsG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWindPressure(params) {
          return command({
              method: 'getWindPressure',
              methodId: 'phEqY8nk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setClean(params) {
          return command({
              method: 'setClean',
              methodId: 'pZgRrS63',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'ppAX3FVS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLighting(params) {
          return command({
              method: 'setLighting',
              methodId: 'pUPQLLaV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3btkL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class GasStove {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050002';
      }

      get categoryName() {
          return '\u71c3\u6c14\u7076';
      }

      getBurningTime(params) {
          return command({
              method: 'getBurningTime',
              methodId: 'pGoxpVeb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'pDrhgG3k',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'pZgRrS7x',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vZQ31q',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBurningTime(params) {
          return command({
              method: 'setBurningTime',
              methodId: 'peH3btYV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'pUPQLLOG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAX3FN3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class Dishwasher {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050003';
      }

      get categoryName() {
          return '\u6d17\u7897\u673a';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pj7xclZ5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDryingSwitch(params) {
          return command({
              method: 'getDryingSwitch',
              methodId: 'p0cr5nnM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getIntensity(params) {
          return command({
              method: 'getIntensity',
              methodId: 'p3deZDJE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pkpDAsy9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'pdN7VYsI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSterilizationSwitch(params) {
          return command({
              method: 'getSterilizationSwitch',
              methodId: 'pNnZJ5wm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pz93wuXn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemperature(params) {
          return command({
              method: 'getTemperature',
              methodId: 'ptRSxc6z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pBTQ0MRK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkTime(params) {
          return command({
              method: 'getWorkTime',
              methodId: 'pXZusKxl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDryingSwitch(params) {
          return command({
              method: 'setDryingSwitch',
              methodId: 'pDrhgGko',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIntensity(params) {
          return command({
              method: 'setIntensity',
              methodId: 'pUPQLLvb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pGoxpVlk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'pZgRrSCq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSterilizationSwitch(params) {
          return command({
              method: 'setSterilizationSwitch',
              methodId: 'phEqY8aW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'ppAX3Fcx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'p1vZQ3I1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTemperature(params) {
          return command({
              method: 'setTemperature',
              methodId: 'peH3bt0G',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWorkTime(params) {
          return command({
              method: 'setWorkTime',
              methodId: 'pgh0uxVR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class HighSpeedBlender {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050004';
      }

      get categoryName() {
          return '\u7834\u58c1\u673a';
      }

      getCookTemperature(params) {
          return command({
              method: 'getCookTemperature',
              methodId: 'pgh0uxNz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCookTime(params) {
          return command({
              method: 'getCookTime',
              methodId: 'phEqY8OI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pkpDAs3M',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'ptRSxc7E',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'pDrhgGYW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pdN7VYe9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'p3deZDDn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTemperature(params) {
          return command({
              method: 'setCookTemperature',
              methodId: 'pUPQLLbk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTime(params) {
          return command({
              method: 'setCookTime',
              methodId: 'pZgRrSL1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pGoxpVUo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'ppAX3FWq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'peH3btBb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'p1vZQ3KR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class MicrowaveOven {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050005';
      }

      get categoryName() {
          return '\u5fae\u6ce2\u7089';
      }

      getCookTime(params) {
          return command({
              method: 'getCookTime',
              methodId: 'pDrhgG0I',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pgh0uxcE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'p1vZQ3hz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'phEqY8v9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'ptRSxcfn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTime(params) {
          return command({
              method: 'setCookTime',
              methodId: 'pUPQLLRo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pZgRrSxR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'ppAX3Zn1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'peH3btPk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pGoxpVFW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartRiceCooker {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050006';
      }

      get categoryName() {
          return '\u667a\u80fd\u7535\u996d\u9505';
      }

      getAlarm(params) {
          return command({
              method: 'getAlarm',
              methodId: '新增接口01',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getChildLock(params) {
          return command({
              method: 'getChildLock',
              methodId: 'nan',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCookingMode(params) {
          return command({
              method: 'getCookingMode',
              methodId: 'nan',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCookingStatus(params) {
          return command({
              method: 'getCookingStatus',
              methodId: 'nan',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCookingTaste(params) {
          return command({
              method: 'getCookingTaste',
              methodId: 'nan',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemp(params) {
          return command({
              method: 'getCurrentTemp',
              methodId: 'nan',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainingCookingTime(params) {
          return command({
              method: 'getRemainingCookingTime',
              methodId: 'nan',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'nan',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTotalCookingTime(params) {
          return command({
              method: 'getTotalCookingTime',
              methodId: 'nan',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setChildLock(params) {
          return command({
              method: 'setChildLock',
              methodId: 'nan',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookingMode(params) {
          return command({
              method: 'setCookingMode',
              methodId: 'nan',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookingTaste(params) {
          return command({
              method: 'setCookingTaste',
              methodId: 'nan',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'nan',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SoyMilkMaker {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050008';
      }

      get categoryName() {
          return '\u8c46\u6d46\u673a';
      }

      getCookTemperature(params) {
          return command({
              method: 'getCookTemperature',
              methodId: 'pgh0u2m5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCookTime(params) {
          return command({
              method: 'getCookTime',
              methodId: 'phEqY89m',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pkpDAsBC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'ptRSxc2P',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'pDrhgGrl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pdN7VYiw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'p3deZDtU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTemperature(params) {
          return command({
              method: 'setCookTemperature',
              methodId: 'pUPQLL79',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTime(params) {
          return command({
              method: 'setCookTime',
              methodId: 'pZgRrSen',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pGoxpV1M',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'ppAX3ZOE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'peH3btNI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'p1vZQ33K',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ElectricKettle {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050010';
      }

      get categoryName() {
          return '\u7535\u70ed\u6c34\u58f6';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'aKhI0PcId',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'agiRKkgCl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'aINcJ9lSL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'agzzRGdPZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemperature(params) {
          return command({
              method: 'getTargetTemperature',
              methodId: 'ag6DAWido',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'aKAs3Lzl1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkTime(params) {
          return command({
              method: 'getWorkTime',
              methodId: 'aKo4CArnK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'aIObjr8oS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'aDiNMHWuW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'aD5xCJrgV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'aIokpw5qR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemperature(params) {
          return command({
              method: 'setTargetTemperature',
              methodId: 'aD0JoSazm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWorkTime(params) {
          return command({
              method: 'setWorkTime',
              methodId: 'aIwo4lxG5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class HealthPot {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050011';
      }

      get categoryName() {
          return '\u517b\u751f\u58f6';
      }

      getCurrentStatus(params) {
          return command({
              method: 'getCurrentStatus',
              methodId: 'pgh0u2vA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'p3deZDkL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getInsulationRemainTime(params) {
          return command({
              method: 'getInsulationRemainTime',
              methodId: 'pkpDAsVS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getInsulationTime(params) {
          return command({
              method: 'getInsulationTime',
              methodId: 'ptRSxcld',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'phEqY8Cr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemperature(params) {
          return command({
              method: 'getTargetTemperature',
              methodId: 'pdN7VYIZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setContinue(params) {
          return command({
              method: 'setContinue',
              methodId: 'pZgRrSFP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setInsulationTime(params) {
          return command({
              method: 'setInsulationTime',
              methodId: 'pGoxpVhw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pDrhgGcC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPause(params) {
          return command({
              method: 'setPause',
              methodId: 'pUPQLLxm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'peH3bdnl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'ppAX3ZR5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemperature(params) {
          return command({
              method: 'setTargetTemperature',
              methodId: 'p1vZQ30U',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class BreadMaker {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050012';
      }

      get categoryName() {
          return '\u9762\u5305\u673a';
      }

      getCookTemperature(params) {
          return command({
              method: 'getCookTemperature',
              methodId: 'pgh0u2bd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCookTime(params) {
          return command({
              method: 'getCookTime',
              methodId: 'phEqY8LZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pkpDAsN3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'ptRSxcUL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'pDrhgGWr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pdN7VYKS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'p3deZDYV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTemperature(params) {
          return command({
              method: 'setCookTemperature',
              methodId: 'pUPQLL2w',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTime(params) {
          return command({
              method: 'setCookTime',
              methodId: 'pZgRrSiU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pGoxpVtC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'ppAX3ZuP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'peH3bdmm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'p1vZQ3BA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class CoffeeMakers {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050013';
      }

      get categoryName() {
          return '\u5496\u5561\u673a';
      }

      getConcentration(params) {
          return command({
              method: 'getConcentration',
              methodId: 'ag6DAWiY9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'aKo4CArOU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'agiRKkg2C',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'agzzRGdNx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemperature(params) {
          return command({
              method: 'getTemperature',
              methodId: 'aINcJ9lub',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'aKAs3LziE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setConcentration(params) {
          return command({
              method: 'setConcentration',
              methodId: 'aIObjr8lq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'aIokpw7Qn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'aD0JoSaPr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'aDiNMHWCM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'aIwo4lxgA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTemperature(params) {
          return command({
              method: 'setTemperature',
              methodId: 'aD5xCJrdk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class InductionCooker {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050014';
      }

      get categoryName() {
          return '\u7535\u78c1\u7089';
      }

      getCookTemperature(params) {
          return command({
              method: 'getCookTemperature',
              methodId: 'pgh0u2uV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCookTime(params) {
          return command({
              method: 'getCookTime',
              methodId: 'phEqY823',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pkpDAsWq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'ptRSxciG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'pDrhgJmS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pdN7VYtx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'p3deZDBb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTemperature(params) {
          return command({
              method: 'setCookTemperature',
              methodId: 'pUPQLLEr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTime(params) {
          return command({
              method: 'setCookTime',
              methodId: 'pZgRrS1d',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pGoxpV3Z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'ppAX3Z7A',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'peH3bdOC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'p1vZQ3rL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class StirFryMachine {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050015';
      }

      get categoryName() {
          return '\u7092\u83dc\u673a';
      }

      getCookTemperature(params) {
          return command({
              method: 'getCookTemperature',
              methodId: 'ag6DAWiMl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCookTime(params) {
          return command({
              method: 'getCookTime',
              methodId: 'agiRKkgEZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'aKhI0Pc3k',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'agzzRGdW1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'aINcJ9l5o',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'aKAs3Lz1K',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'aKo4CArbd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTemperature(params) {
          return command({
              method: 'setCookTemperature',
              methodId: 'aD0JoSaVS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTime(params) {
          return command({
              method: 'setCookTime',
              methodId: 'aIObjr8ZR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'aIokpw7A5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'aDiNMHWxm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'aD5xCJrTW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'aIwo4lxwL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class Oven {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050016';
      }

      get categoryName() {
          return '\u70e4\u7bb1';
      }

      getChildLockSwitch(params) {
          return command({
              method: 'getChildLockSwitch',
              methodId: 'pz93w9uW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCookingTime(params) {
          return command({
              method: 'getCookingTime',
              methodId: 'pXZusKtE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDoorStatus(params) {
          return command({
              method: 'getDoorStatus',
              methodId: 'pNnZJ74n',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDownTubeTemp(params) {
          return command({
              method: 'getDownTubeTemp',
              methodId: 'pkpDAEmR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pj7xclB9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPreheat(params) {
          return command({
              method: 'getPreheat',
              methodId: 'p3deZDro',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'p0cr5n2z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pqYwvabM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemp(params) {
          return command({
              method: 'getTemp',
              methodId: 'UnfcCtUl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getUpTubeTemp(params) {
          return command({
              method: 'getUpTubeTemp',
              methodId: 'pBTQ0MiI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pWG0dXLK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setChildLockSwitch(params) {
          return command({
              method: 'setChildLockSwitch',
              methodId: 'pGoxpVY3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setContinue(params) {
          return command({
              method: 'setContinue',
              methodId: 'pdN7VY31',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookingTime(params) {
          return command({
              method: 'setCookingTime',
              methodId: 'pDrhgJOx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDownTubeTemp(params) {
          return command({
              method: 'setDownTubeTemp',
              methodId: 'pZgRrSgV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pgh0u27b',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPause(params) {
          return command({
              method: 'setPause',
              methodId: 'peH3bdbZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPreheat(params) {
          return command({
              method: 'setPreheat',
              methodId: 'pUPQLLUS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'ptRSxc1k',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'ppAX3ZLL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'phEqY8Eq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setUpTubeTemp(params) {
          return command({
              method: 'setUpTubeTemp',
              methodId: 'p1vZQ3NG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class DisinfectionCabinet {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050017';
      }

      get categoryName() {
          return '\u6d88\u6bd2\u67dc';
      }

      getDisinfectionSwitch(params) {
          return command({
              method: 'getDisinfectionSwitch',
              methodId: 'aIokpw7vU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDoorState(params) {
          return command({
              method: 'getDoorState',
              methodId: 'ag6DAWiXw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDryingSwitch(params) {
          return command({
              method: 'getDryingSwitch',
              methodId: 'aIwo4lxyG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'aINcJ9lfI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'aIObjr8JE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'agiRKkgp3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDisinfectionSwitch(params) {
          return command({
              method: 'setDisinfectionSwitch',
              methodId: 'aDiNMHWsC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDryingSwitch(params) {
          return command({
              method: 'setDryingSwitch',
              methodId: 'aD0JoSacx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'aD5xCJr09',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class Steamer {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050019';
      }

      get categoryName() {
          return '\u84b8\u7bb1';
      }

      getCookTemperature(params) {
          return command({
              method: 'getCookTemperature',
              methodId: 'pgh0u2HW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCookTime(params) {
          return command({
              method: 'getCookTime',
              methodId: 'phEqY8Fz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pkpDAEvn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'ptRSxchI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'pDrhgJRR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pdN7VY0E',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'p3deZDc9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTemperature(params) {
          return command({
              method: 'setCookTemperature',
              methodId: 'pUPQLLGq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTime(params) {
          return command({
              method: 'setCookTime',
              methodId: 'pZgRrSdk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pGoxpVP1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'ppAX3Zsb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'peH3bd6x',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'p1vZQTno',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class TeaBarMachine {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050020';
      }

      get categoryName() {
          return '\u8336\u5427\u673a';
      }

      getColdStatus(params) {
          return command({
              method: 'getColdStatus',
              methodId: 'aINcJ9lol',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColdSwitch(params) {
          return command({
              method: 'getColdSwitch',
              methodId: 'aKAs3Lzdd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColdTemperature(params) {
          return command({
              method: 'getColdTemperature',
              methodId: 'ag6DAWiqZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentColdTemperature(params) {
          return command({
              method: 'getCurrentColdTemperature',
              methodId: 'agiRKkgG1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentHeatTemperature(params) {
          return command({
              method: 'getCurrentHeatTemperature',
              methodId: 'aIwo4lxzo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getHeatTemperature(params) {
          return command({
              method: 'getHeatTemperature',
              methodId: 'aIokpw79L',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getHeatingStatus(params) {
          return command({
              method: 'getHeatingStatus',
              methodId: 'aKo4CArCk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getHotSwitch(params) {
          return command({
              method: 'getHotSwitch',
              methodId: 'agzzRGySK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColdSwitch(params) {
          return command({
              method: 'setColdSwitch',
              methodId: 'aIObjr8K5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColdTemperature(params) {
          return command({
              method: 'setColdTemperature',
              methodId: 'aDiNMHWUS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setHeatTemperature(params) {
          return command({
              method: 'setHeatTemperature',
              methodId: 'aD5xCJrrm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setHotSwitch(params) {
          return command({
              method: 'setHotSwitch',
              methodId: 'aD0JoSAmR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class IceMaker {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050022';
      }

      get categoryName() {
          return '\u5236\u51b0\u673a';
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'pGoxpVNE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQLLgz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pZgRrSYI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'ppAX3ZpW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3bdLR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class AirFryer {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050023';
      }

      get categoryName() {
          return '\u7a7a\u6c14\u70b8\u9505';
      }

      getCookTemperature(params) {
          return command({
              method: 'getCookTemperature',
              methodId: 'ag6DAWGQx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCookTime(params) {
          return command({
              method: 'getCookTime',
              methodId: 'agiRKkggE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'aKhI0PcNw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'agzzRGyuU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'aINcJ9lpC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'aKAs3LzYG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'aKo4CAr2I',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTemperature(params) {
          return command({
              method: 'setCookTemperature',
              methodId: 'aD0JoSAvn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTime(params) {
          return command({
              method: 'setCookTime',
              methodId: 'aIObjr8yA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'aIokpw7fb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'aDiNMHWGq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'aD5xCJrqr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'aIwo4lxX9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class WaterSoftener {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050024';
      }

      get categoryName() {
          return '\u8f6f\u6c34\u673a';
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pUPQLLtn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pZgRrSMM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pGoxpVWK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'peH3bd2E',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAX3Zi9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class NoodleMaker {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050025';
      }

      get categoryName() {
          return '\u9762\u6761\u673a';
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'p1vZQTRm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGoxpNn5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pDrhgJHP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'ppAX3ZGM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'pUPQLLdK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'pZgRrSPl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3bdsn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class IntegratedStove {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050026';
      }

      get categoryName() {
          return '\u96c6\u6210\u7076';
      }

      getAirFlowVolume(params) {
          return command({
              method: 'getAirFlowVolume',
              methodId: 'p3deZIbZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getBurningTime(params) {
          return command({
              method: 'getBurningTime',
              methodId: 'pDrhgJ2U',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getClean(params) {
          return command({
              method: 'getClean',
              methodId: 'pdN7VYWd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'ptRSxcMr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'p1vZQTuw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSpeed(params) {
          return command({
              method: 'getSpeed',
              methodId: 'phEqY8tA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pgh0u2iC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWindPressure(params) {
          return command({
              method: 'getWindPressure',
              methodId: 'pkpDAELL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBurningTime(params) {
          return command({
              method: 'setBurningTime',
              methodId: 'peH3bdEK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setClean(params) {
          return command({
              method: 'setClean',
              methodId: 'ppAX3Z1l',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'pGoxpNQP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSpeed(params) {
          return command({
              method: 'setSpeed',
              methodId: 'pZgRrSrm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQLL35',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class IceCreamMaker {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050027';
      }

      get categoryName() {
          return '\u51b0\u6dc7\u6dcb\u673a';
      }

      getHardness(params) {
          return command({
              method: 'getHardness',
              methodId: 'pGoxpNaU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vZQT6C',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pDrhgJsA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setHardness(params) {
          return command({
              method: 'setHardness',
              methodId: 'peH3bdl5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'pUPQLLTP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'ppAX3ZIm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pZgRrSjw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class FoodDehydrator {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050028';
      }

      get categoryName() {
          return '\u98df\u7269\u70d8\u5e72\u673a';
      }

      getCookTemperature(params) {
          return command({
              method: 'getCookTemperature',
              methodId: 'ptRSxcrS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCookTime(params) {
          return command({
              method: 'getCookTime',
              methodId: 'p3deZIu3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pdN7VzQV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pgh0u21Z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'pkpDAE2G',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pDrhgJEd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'phEqY83L',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTemperature(params) {
          return command({
              method: 'setCookTemperature',
              methodId: 'pGoxpNOA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTime(params) {
          return command({
              method: 'setCookTime',
              methodId: 'p1vZQT5r',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAX3Zgw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'pUPQLLYU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'pZgRrSNC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3bdpP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class GrainMill {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050029';
      }

      get categoryName() {
          return '\u8c37\u7269\u78be\u78e8\u673a';
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p1vZQTCZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGoxpNSd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pDrhgJlL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAX3ZhC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'pUPQLL0A',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'pZgRrSqr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3bdFU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class Refrigerator {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050030';
      }

      get categoryName() {
          return '\u51b0\u7bb1';
      }

      getAntibacterialSwitch(params) {
          return command({
              method: 'getAntibacterialSwitch',
              methodId: 'UvxDDVU5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getChildLockSwitch(params) {
          return command({
              method: 'getChildLockSwitch',
              methodId: 'p0cr5n3o',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getEnergySavingMode(params) {
          return command({
              method: 'getEnergySavingMode',
              methodId: 'U5suj8OU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFreezerCurrentTemperature(params) {
          return command({
              method: 'getFreezerCurrentTemperature',
              methodId: 'UaMClLbK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFreezerDoorSwitch(params) {
          return command({
              method: 'getFreezerDoorSwitch',
              methodId: 'U9KmHxNw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFreezerSwitch(params) {
          return command({
              method: 'getFreezerSwitch',
              methodId: 'pj7xcpuz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFreezerTemperature(params) {
          return command({
              method: 'getFreezerTemperature',
              methodId: 'pWG0dXt9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGreenhouseCurrentTemperature(params) {
          return command({
              method: 'getGreenhouseCurrentTemperature',
              methodId: 'UmaSPFWM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGreenhouseDoorSwitch(params) {
          return command({
              method: 'getGreenhouseDoorSwitch',
              methodId: 'URPrTGYP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGreenhouseSwitch(params) {
          return command({
              method: 'getGreenhouseSwitch',
              methodId: 'pXZushQW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGreenhouseTemperature(params) {
          return command({
              method: 'getGreenhouseTemperature',
              methodId: 'pqYwvaiE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRefrigeratorCurrentTemperature(params) {
          return command({
              method: 'getRefrigeratorCurrentTemperature',
              methodId: 'UnfcCtBn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRefrigeratorDoorSwitch(params) {
          return command({
              method: 'getRefrigeratorDoorSwitch',
              methodId: 'U8OT83Km',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRefrigeratorSwitch(params) {
          return command({
              method: 'getRefrigeratorSwitch',
              methodId: 'pBTQ0MrR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRefrigeratorTemperature(params) {
          return command({
              method: 'getRefrigeratorTemperature',
              methodId: 'pNnZJ72I',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getScreenSwitch(params) {
          return command({
              method: 'getScreenSwitch',
              methodId: 'UODlnSLl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pkpDAEEk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkMode(params) {
          return command({
              method: 'getWorkMode',
              methodId: 'pz93w911',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAntibacterialSwitch(params) {
          return command({
              method: 'setAntibacterialSwitch',
              methodId: 'pdN7VzOb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setChildLockSwitch(params) {
          return command({
              method: 'setChildLockSwitch',
              methodId: 'pUPQLLMd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setEnergySavingMode(params) {
          return command({
              method: 'setEnergySavingMode',
              methodId: 'p3deZI5q',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFreezerSwitch(params) {
          return command({
              method: 'setFreezerSwitch',
              methodId: 'p1vZQTLS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFreezerTemperature(params) {
          return command({
              method: 'setFreezerTemperature',
              methodId: 'phEqY8YG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGreenhouseSwitch(params) {
          return command({
              method: 'setGreenhouseSwitch',
              methodId: 'pGoxpNbL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGreenhouseTemperature(params) {
          return command({
              method: 'setGreenhouseTemperature',
              methodId: 'pgh0u2g3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setRefrigeratorSwitch(params) {
          return command({
              method: 'setRefrigeratorSwitch',
              methodId: 'pZgRrSWZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setRefrigeratorTemperature(params) {
          return command({
              method: 'setRefrigeratorTemperature',
              methodId: 'pDrhgJpV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setScreenSwitch(params) {
          return command({
              method: 'setScreenSwitch',
              methodId: 'ptRSxcNx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3bdiA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWorkMode(params) {
          return command({
              method: 'setWorkMode',
              methodId: 'ppAX3Zwr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class StewPot {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050031';
      }

      get categoryName() {
          return '\u7096\u9505';
      }

      getCookTemperature(params) {
          return command({
              method: 'getCookTemperature',
              methodId: 'pgh0u2hx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCookTime(params) {
          return command({
              method: 'getCookTime',
              methodId: 'phEqY80b',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pkpDAElo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'ptRSxcqq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'pDrhgJFG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pdN7VzSk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'p3deZIC1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTemperature(params) {
          return command({
              method: 'setCookTemperature',
              methodId: 'pUPQLLPL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTime(params) {
          return command({
              method: 'setCookTime',
              methodId: 'pZgRrvnS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pGoxpN8V',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'ppAX3ZdZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'peH3bdGd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'p1vZQTH3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ElectricGrill {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050033';
      }

      get categoryName() {
          return '\u70e4\u7089';
      }

      getBottomTemp(params) {
          return command({
              method: 'getBottomTemp',
              methodId: 'pgh0u2d1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCookTime(params) {
          return command({
              method: 'getCookTime',
              methodId: 'pdN7Vz8W',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentBottomTemp(params) {
          return command({
              method: 'getCurrentBottomTemp',
              methodId: 'p0cr5n09',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTopTemp(params) {
          return command({
              method: 'getCurrentTopTemp',
              methodId: 'pBTQ0Mcn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p3deZIHz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'phEqY8Po',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pkpDAEFI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTopTemp(params) {
          return command({
              method: 'getTopTemp',
              methodId: 'ptRSxWnR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pz93w9hE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBottomTemp(params) {
          return command({
              method: 'setBottomTemp',
              methodId: 'peH3bdDV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTime(params) {
          return command({
              method: 'setCookTime',
              methodId: 'pGoxpN6b',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'p1vZQToq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'pZgRrvax',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'ppAX3ZT3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pDrhgJGk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTopTemp(params) {
          return command({
              method: 'setTopTemp',
              methodId: 'pUPQLLjG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class PressureCooker {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050034';
      }

      get categoryName() {
          return '\u538b\u529b\u9505';
      }

      getCookPressure(params) {
          return command({
              method: 'getCookPressure',
              methodId: 'phEqY8XW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCookTemperature(params) {
          return command({
              method: 'getCookTemperature',
              methodId: 'ptRSxWQz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCookTime(params) {
          return command({
              method: 'getCookTime',
              methodId: 'pdN7VzuI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'p0cr5nMM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p3deZI2E',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'pgh0u23R',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pkpDAEi9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pz93w9tn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookPressure(params) {
          return command({
              method: 'setCookPressure',
              methodId: 'pUPQLLNb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTemperature(params) {
          return command({
              method: 'setCookTemperature',
              methodId: 'pZgRrvAq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTime(params) {
          return command({
              method: 'setCookTime',
              methodId: 'pGoxpN5k',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'p1vZQTE1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'ppAX3ZYx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'peH3bdgG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pDrhgJ1o',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class MultifunctionalCookingPot {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050035';
      }

      get categoryName() {
          return '\u6599\u7406\u9505';
      }

      getCookTemperature(params) {
          return command({
              method: 'getCookTemperature',
              methodId: 'pgh0u2Tz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCookTime(params) {
          return command({
              method: 'getCookTime',
              methodId: 'phEqY8jI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pkpDAEGM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'ptRSxWaE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'pDrhgJDW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pdN7Vz69',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'p3deZIsn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTemperature(params) {
          return command({
              method: 'setCookTemperature',
              methodId: 'pUPQLLqk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTime(params) {
          return command({
              method: 'setCookTime',
              methodId: 'pZgRrvS1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pGoxpNCo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'ppAX3Zzq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'peH3bdhb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'p1vZQTlR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class VegetableWasher {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050037';
      }

      get categoryName() {
          return '\u6d17\u83dc\u673a';
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pgh0u20n',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'p1vZQTFE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'phEqY8qM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWashTime(params) {
          return command({
              method: 'getWashTime',
              methodId: 'pDrhgJh9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'ptRSxWSK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pZgRrv8z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'pUPQLH4W',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'peH3bddo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pGoxpNHI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWashTime(params) {
          return command({
              method: 'setWashTime',
              methodId: 'ppAX3ZPR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class IngredientCleaner {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050038';
      }

      get categoryName() {
          return '\u98df\u6750\u6e05\u6d17\u673a';
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pgh0u2MK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'p1vZQTin',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'phEqY8Wl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWashTime(params) {
          return command({
              method: 'getWashTime',
              methodId: 'pDrhgJwM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'ptRSxWb5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pZgRrvuE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'pUPQLHQI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'peH3bdyW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pGoxpN29',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWashTime(params) {
          return command({
              method: 'setWashTime',
              methodId: 'ppAX3ZXz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class YogurtMaker {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050039';
      }

      get categoryName() {
          return '\u9178\u5976\u673a';
      }

      getCookTemperature(params) {
          return command({
              method: 'getCookTemperature',
              methodId: 'pgh0u2P5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCookTime(params) {
          return command({
              method: 'getCookTime',
              methodId: 'phEqYRnm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pkpDAEhC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'ptRSxW8P',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'pDrhgJdl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pdN7VzHw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'p3deZIFU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTemperature(params) {
          return command({
              method: 'setCookTemperature',
              methodId: 'pUPQLHa9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTime(params) {
          return command({
              method: 'setCookTime',
              methodId: 'pZgRrv6n',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pGoxpNoM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'ppAX3ZjE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'peH3bdTI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'p1vZQTGK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SlowCooker {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050042';
      }

      get categoryName() {
          return '\u6162\u716e\u673a';
      }

      getCookTemperature(params) {
          return command({
              method: 'getCookTemperature',
              methodId: 'pgh0u2NA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCookTime(params) {
          return command({
              method: 'getCookTime',
              methodId: 'phEqYRAr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pkpDAE3S',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'ptRSxW5d',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'pDrhgJYC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pdN7VzEZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'p3deZI1L',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTemperature(params) {
          return command({
              method: 'setCookTemperature',
              methodId: 'pUPQLHbm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTime(params) {
          return command({
              method: 'setCookTime',
              methodId: 'pZgRrvfP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pGoxpNpw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'ppAX3ZW5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'peH3bdMl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'p1vZQTgU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class Juicer {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050043';
      }

      get categoryName() {
          return '\u69a8\u6c41\u673a';
      }

      getCookTemperature(params) {
          return command({
              method: 'getCookTemperature',
              methodId: 'pgh0u2qd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCookTime(params) {
          return command({
              method: 'getCookTime',
              methodId: 'phEqYRSZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pkpDAET3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'ptRSxWCL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'pDrhgJzr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pdN7VzlS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'p3deZIDV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTemperature(params) {
          return command({
              method: 'setCookTemperature',
              methodId: 'pUPQLH8w',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTime(params) {
          return command({
              method: 'setCookTime',
              methodId: 'pZgRrvHU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pGoxpNFC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'ppAX3i4P',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'peH3bdPm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'p1vZQThA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartLunchBox {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050046';
      }

      get categoryName() {
          return '\u667a\u80fd\u996d\u76d2';
      }

      getCookTemperature(params) {
          return command({
              method: 'getCookTemperature',
              methodId: 'pDrhgJX3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCookTime(params) {
          return command({
              method: 'getCookTime',
              methodId: 'pgh0uoQG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pdN7VzZq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'p1vZQTyV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'phEqYRux',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'ptRSxW2b',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTemperature(params) {
          return command({
              method: 'setCookTemperature',
              methodId: 'pUPQLH5Z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTime(params) {
          return command({
              method: 'setCookTime',
              methodId: 'pZgRrvEL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'ppAX3iAd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'peH3bdVr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pGoxpN1S',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartElectricKettle {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050047';
      }

      get categoryName() {
          return '\u667a\u80fd\u7535\u8336\u58f6';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pkpDAEPR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'phEqYR9q',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'pDrhgJjx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ptRSxWok',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemperature(params) {
          return command({
              method: 'getTargetTemperature',
              methodId: 'pgh0uoab',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pdN7VzG1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkTime(params) {
          return command({
              method: 'getWorkTime',
              methodId: 'p3deZIdo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pZgRrveV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'ppAX3iSL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'peH3bdqZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pGoxpND3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemperature(params) {
          return command({
              method: 'setTargetTemperature',
              methodId: 'pUPQLHCS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWorkTime(params) {
          return command({
              method: 'setWorkTime',
              methodId: 'p1vZQTTG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class FoodWasteDisposer {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050048';
      }

      get categoryName() {
          return '\u53a8\u4f59\u5783\u573e\u5904\u7406\u5668';
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pUPQLHf3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pZgRrvpG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pGoxpNgx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'peH3bdWS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAX3ivV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class BreastPump {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050049';
      }

      get categoryName() {
          return '\u5438\u5976\u5668';
      }

      getBreastSuckingLevel(params) {
          return command({
              method: 'getBreastSuckingLevel',
              methodId: 'pDrhgJq1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLactationLevel(params) {
          return command({
              method: 'getLactationLevel',
              methodId: 'pdN7VzDz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pgh0uoSo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'phEqYRCR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'ptRSxWeW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBreastSuckingLevel(params) {
          return command({
              method: 'setBreastSuckingLevel',
              methodId: 'peH3by43',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLactationLevel(params) {
          return command({
              method: 'setLactationLevel',
              methodId: 'p1vZQTzk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pUPQLHHx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'pZgRrvFb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'ppAX3i8G',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pGoxpNKq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class WaterPurifier {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050050';
      }

      get categoryName() {
          return '\u51c0\u996e\u673a';
      }

      getCartridgeRemainingDay(params) {
          return command({
              method: 'getCartridgeRemainingDay',
              methodId: 'p1vZQTMo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pdN7VzgE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pgh0uovW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemperature(params) {
          return command({
              method: 'getTargetTemperature',
              methodId: 'pGoxpNw1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTdsIn(params) {
          return command({
              method: 'getTdsIn',
              methodId: 'pZgRrvZk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTdsOut(params) {
          return command({
              method: 'getTdsOut',
              methodId: 'phEqYRfz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'ptRSxWpI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCartridgeToDefault(params) {
          return command({
              method: 'setCartridgeToDefault',
              methodId: 'ppAX3iub',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQLHxq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemperature(params) {
          return command({
              method: 'setTargetTemperature',
              methodId: 'peH3byQx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class RiceCabinet {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050052';
      }

      get categoryName() {
          return '\u7c73\u67dc';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pGoxpNyz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDryingSwitch(params) {
          return command({
              method: 'getDryingSwitch',
              methodId: 'pZgRrvJW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQLHER',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDryingSwitch(params) {
          return command({
              method: 'setDryingSwitch',
              methodId: 'ppAX3i5o',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3byA1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class WineCooler {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050053';
      }

      get categoryName() {
          return '\u9152\u67dc';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pgh0uo9M',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDoorStatus(params) {
          return command({
              method: 'getDoorStatus',
              methodId: 'pGoxpNTE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pDrhg1an',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vZQTj9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemperature(params) {
          return command({
              method: 'getTargetTemperature',
              methodId: 'pZgRrvDI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pUPQLHez',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAX3i7W',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemperature(params) {
          return command({
              method: 'setTargetTemperature',
              methodId: 'peH3bySR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartFaucet {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050054';
      }

      get categoryName() {
          return '\u667a\u80fd\u6c34\u9f99\u5934';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQLHpE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTdsIn(params) {
          return command({
              method: 'getTdsIn',
              methodId: 'ppAX3ifI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTdsOut(params) {
          return command({
              method: 'getTdsOut',
              methodId: 'pZgRrvg9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pGoxpNYn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3byvz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class FoodProbe {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050055';
      }

      get categoryName() {
          return '\u98df\u7269\u63a2\u9488';
      }

      getAlarmStatus(params) {
          return command({
              method: 'getAlarmStatus',
              methodId: 'pDrhg1S5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'p1vZQTql',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getStatus(params) {
          return command({
              method: 'getStatus',
              methodId: 'pUPQLHFn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetHighTemp(params) {
          return command({
              method: 'getTargetHighTemp',
              methodId: 'pZgRrvKM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetLowTemp(params) {
          return command({
              method: 'getTargetLowTemp',
              methodId: 'pGoxpNzK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetHighTemp(params) {
          return command({
              method: 'setTargetHighTemp',
              methodId: 'peH3by8E',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetLowTemp(params) {
          return command({
              method: 'setTargetLowTemp',
              methodId: 'ppAX3iH9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class Freezer {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050056';
      }

      get categoryName() {
          return '\u51b7\u67dc';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pgh0uofw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDoorStatus(params) {
          return command({
              method: 'getDoorStatus',
              methodId: 'pGoxpNM5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pDrhg1vP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vZQTWm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemperature(params) {
          return command({
              method: 'getTargetTemperature',
              methodId: 'pZgRrvwl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pUPQLHZK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAX3ixM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemperature(params) {
          return command({
              method: 'setTargetTemperature',
              methodId: 'peH3byun',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class BabyBottleSterilizer {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050057';
      }

      get categoryName() {
          return '\u5a74\u513f\u6d88\u6bd2\u67dc';
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pUPQLHG5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pZgRrvdm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pGoxpNBP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'peH3by9K',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAX3iol',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class MilkFrother {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050058';
      }

      get categoryName() {
          return '\u51b2\u5976\u673a';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'p3deZIWS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPowder(params) {
          return command({
              method: 'getPowder',
              methodId: 'phEqYRZd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ptRSxWwZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemperature(params) {
          return command({
              method: 'getTemperature',
              methodId: 'pDrhg1uA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWater(params) {
          return command({
              method: 'getWater',
              methodId: 'pgh0uoxr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pdN7VzML',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPowder(params) {
          return command({
              method: 'setPowder',
              methodId: 'pGoxpNXU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'pZgRrvyw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'ppAX3iEm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'p1vZQkQC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTemperature(params) {
          return command({
              method: 'setTemperature',
              methodId: 'peH3by55',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWater(params) {
          return command({
              method: 'setWater',
              methodId: 'pUPQLHJP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class MilkWarmer {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050059';
      }

      get categoryName() {
          return '\u6696\u5976\u5668';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pDrhg19d',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGoxpNjA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemperature(params) {
          return command({
              method: 'getTemperature',
              methodId: 'pZgRrvTC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'p1vZQkmr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAX3iew',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTemperature(params) {
          return command({
              method: 'setTemperature',
              methodId: 'peH3by7P',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SterilizationPot {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050060';
      }

      get categoryName() {
          return '\u6d88\u6bd2\u9505';
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pUPQLHgA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pZgRrvkr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pGoxpNVd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'peH3byfU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAX3ipC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class MilkMixer {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050061';
      }

      get categoryName() {
          return '\u8c03\u5976\u5668';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pgh0uoe3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vZQkSS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemperature(params) {
          return command({
              method: 'getTemperature',
              methodId: 'pGoxpNqL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pDrhg17V',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'pUPQLHKd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'ppAX3iUr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pZgRrvzZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTemperature(params) {
          return command({
              method: 'setTemperature',
              methodId: 'peH3byHA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class BabyFoodProcessor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050062';
      }

      get categoryName() {
          return '\u5a74\u513f\u8f85\u98df\u673a';
      }

      getCookTemperature(params) {
          return command({
              method: 'getCookTemperature',
              methodId: 'pgh0uopx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCookTime(params) {
          return command({
              method: 'getCookTime',
              methodId: 'phEqYRgb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pkpDAe5o',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'ptRSxWkq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'pDrhg1fG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pdN7VzVk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'p3deZgA1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTemperature(params) {
          return command({
              method: 'setCookTemperature',
              methodId: 'pUPQLHwL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCookTime(params) {
          return command({
              method: 'setCookTime',
              methodId: 'pZgRrvMS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pGoxpNcV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'ppAX3iZZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'peH3byxd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'p1vZQkv3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class EggCooker {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050063';
      }

      get categoryName() {
          return '\u716e\u86cb\u5668';
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p1vZQk8x',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGoxpq4G',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pDrhg1Hb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAX3iGS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'pUPQLHtV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'pZgRrvB3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3byoL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class VacuumSealer {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050064';
      }

      get categoryName() {
          return '\u771f\u7a7a\u5c01\u53e3\u673a';
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p1vZQkRq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGoxpqQb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAX3iJ3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'pUPQLHyG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStop(params) {
          return command({
              method: 'setStop',
              methodId: 'pZgRrvXx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3bysV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class WarmingPlate {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050065';
      }

      get categoryName() {
          return '\u6696\u83dc\u677f';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pGoxpqmk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQLHTb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemperature(params) {
          return command({
              method: 'getTemperature',
              methodId: 'pZgRrvrq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3byeG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTemperature(params) {
          return command({
              method: 'setTemperature',
              methodId: 'ppAX3iDx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class KnifeAndChopsticksSterilizer {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050066';
      }

      get categoryName() {
          return '\u5200\u7b77\u6740\u83cc\u67b6';
      }

      getDisinfectionSwitch(params) {
          return command({
              method: 'getDisinfectionSwitch',
              methodId: 'pGoxpqAo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDryingSwitch(params) {
          return command({
              method: 'getDryingSwitch',
              methodId: 'p1vZQk5R',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pZgRrvV1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pDrhg1sW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDisinfectionSwitch(params) {
          return command({
              method: 'setDisinfectionSwitch',
              methodId: 'ppAX3iIq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDryingSwitch(params) {
          return command({
              method: 'setDryingSwitch',
              methodId: 'pUPQLHkk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3bypb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class HeatedCupMat {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010050067';
      }

      get categoryName() {
          return '\u52a0\u70ed\u676f\u57ab';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pGoxpqOW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQLHzo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemperature(params) {
          return command({
              method: 'getTargetTemperature',
              methodId: 'pZgRrvqR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'p1vZQk7z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3byUk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemperature(params) {
          return command({
              method: 'setTargetTemperature',
              methodId: 'ppAX3iK1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartFootBath {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010060001';
      }

      get categoryName() {
          return '\u8db3\u6d74\u76c6';
      }

      getConstantTempSwitch(params) {
          return command({
              method: 'getConstantTempSwitch',
              methodId: 'ptRSe8HI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemp(params) {
          return command({
              method: 'getCurrentTemp',
              methodId: 'phEqB28z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMassageMode(params) {
          return command({
              method: 'getMassageMode',
              methodId: 'p3de1Yh9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMassageSwitch(params) {
          return command({
              method: 'getMassageSwitch',
              methodId: 'pdN7WcFE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pDrht3PR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemp(params) {
          return command({
              method: 'getTargetTemp',
              methodId: 'pgh07J4W',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetWorkingHours(params) {
          return command({
              method: 'getTargetWorkingHours',
              methodId: 'pkpDbD0n',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkingHours(params) {
          return command({
              method: 'getWorkingHours',
              methodId: 'pz933sqM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setConstantTempSwitch(params) {
          return command({
              method: 'setConstantTempSwitch',
              methodId: 'pUPQoZ9q',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMassageMode(params) {
          return command({
              method: 'setMassageMode',
              methodId: 'pGoxGSG1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMassageSwitch(params) {
          return command({
              method: 'setMassageSwitch',
              methodId: 'pZgRqLok',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH39Xjx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemp(params) {
          return command({
              method: 'setTargetTemp',
              methodId: 'ppAXzdab',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetWorkingHours(params) {
          return command({
              method: 'setTargetWorkingHours',
              methodId: 'p1vZOVdo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ElectricBlanket {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010060002';
      }

      get categoryName() {
          return '\u7535\u70ed\u6bef';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'phEqB2uE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'ptRSe829',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getHeatingSwitch(params) {
          return command({
              method: 'getHeatingSwitch',
              methodId: 'pDrht3Xz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vZOVyW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetWorkingHours(params) {
          return command({
              method: 'getTargetWorkingHours',
              methodId: 'pdN7Wcin',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkMode(params) {
          return command({
              method: 'getWorkMode',
              methodId: 'pgh07JQI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkingHours(params) {
          return command({
              method: 'getWorkingHours',
              methodId: 'p3de1YwM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'pZgRqLEo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setHeatingSwitch(params) {
          return command({
              method: 'setHeatingSwitch',
              methodId: 'ppAXzdAk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH39XVq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetWorkingHours(params) {
          return command({
              method: 'setTargetWorkingHours',
              methodId: 'pGoxGS1R',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWorkMode(params) {
          return command({
              method: 'setWorkMode',
              methodId: 'pUPQoZ51',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartBed {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010060003';
      }

      get categoryName() {
          return '\u667a\u80fd\u5e8a';
      }

      getBedOff(params) {
          return command({
              method: 'getBedOff',
              methodId: 'pZgRqLeW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getHeartRate(params) {
          return command({
              method: 'getHeartRate',
              methodId: 'ppAXzdSo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRespiratoryRate(params) {
          return command({
              method: 'getRespiratoryRate',
              methodId: 'p1vZOVTI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSleepStatus(params) {
          return command({
              method: 'getSleepStatus',
              methodId: 'pUPQoZCR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGoxGSDz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH39Xq1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class Thermometer {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010060005';
      }

      get categoryName() {
          return '\u4f53\u6e29\u8ba1';
      }

      getTemperature(params) {
          return command({
              method: 'getTemperature',
              methodId: 'ppAXzd8I',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'peH39r4z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartBodyFatScale {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010060006';
      }

      get categoryName() {
          return '\u667a\u80fd\u4f53\u8102\u79e4';
      }

      getBodyFatPercentage(params) {
          return command({
              method: 'getBodyFatPercentage',
              methodId: 'p1vZOVMl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMuscleMass(params) {
          return command({
              method: 'getMuscleMass',
              methodId: 'pGoxGSwK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQoZ2n',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWeightValue(params) {
          return command({
              method: 'getWeightValue',
              methodId: 'pZgRqLZM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH39rQE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setToDefault(params) {
          return command({
              method: 'setToDefault',
              methodId: 'ppAXzdu9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setUserInformation(params) {
          return command({
              method: 'setUserInformation',
              methodId: 'pgh07Jbm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class TowelRack {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010060008';
      }

      get categoryName() {
          return '\u6bdb\u5dfe\u67b6';
      }

      getEco(params) {
          return command({
              method: 'getEco',
              methodId: 'p1vZOVXw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLevel(params) {
          return command({
              method: 'getLevel',
              methodId: 'ptRSe8Zr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'phEqB22A',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pgh07JuC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemp(params) {
          return command({
              method: 'getTemp',
              methodId: 'pDrhtTQU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTempCurrent(params) {
          return command({
              method: 'getTempCurrent',
              methodId: 'pdN7Wcwd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setEco(params) {
          return command({
              method: 'setEco',
              methodId: 'peH39rAK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLevel(params) {
          return command({
              method: 'setLevel',
              methodId: 'pGoxGSyP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pZgRqL1m',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQoZE5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTemp(params) {
          return command({
              method: 'setTemp',
              methodId: 'ppAXzd5l',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class MoxibustionDevice {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010060010';
      }

      get categoryName() {
          return '\u827e\u7078\u4eea';
      }

      getDuration(params) {
          return command({
              method: 'getDuration',
              methodId: 'phEqB2EL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'pgh07J5Z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'p1vZOVVr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pDrhtTAd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemperature(params) {
          return command({
              method: 'getTargetTemperature',
              methodId: 'pGoxGSYA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDuration(params) {
          return command({
              method: 'setDuration',
              methodId: 'pZgRqLgC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'pUPQoZpU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAXzdfw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemperature(params) {
          return command({
              method: 'setTargetTemperature',
              methodId: 'peH39rvP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ElectricToothbrush {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010060011';
      }

      get categoryName() {
          return '\u7535\u52a8\u7259\u5237';
      }

      getIntensity(params) {
          return command({
              method: 'getIntensity',
              methodId: 'pGoxGSzd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p1vZOVqZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pZgRqLKr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIntensity(params) {
          return command({
              method: 'setIntensity',
              methodId: 'ppAXzdHC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pUPQoZFA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH39r8U',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class OralIrrigator {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010060012';
      }

      get categoryName() {
          return '\u51b2\u7259\u5668';
      }

      getIntensity(params) {
          return command({
              method: 'getIntensity',
              methodId: 'p1vZOVWS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'phEqB2pG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'pGoxGSML',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pgh07Jf3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTime(params) {
          return command({
              method: 'getTargetTime',
              methodId: 'pDrhtTvV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIntensity(params) {
          return command({
              method: 'setIntensity',
              methodId: 'peH39ruA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pZgRqLwZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQoZZd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTime(params) {
          return command({
              method: 'setTargetTime',
              methodId: 'ppAXzdxr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ElectricShaver {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010060013';
      }

      get categoryName() {
          return '\u5243\u987b\u673a';
      }

      getDuration(params) {
          return command({
              method: 'getDuration',
              methodId: 'pgh07JHx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p1vZON43',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'phEqB2Fb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSpeed(params) {
          return command({
              method: 'getSpeed',
              methodId: 'pDrhtT8G',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGoxGSBV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDuration(params) {
          return command({
              method: 'setDuration',
              methodId: 'pZgRqLdS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXzdoZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSpeed(params) {
          return command({
              method: 'setSpeed',
              methodId: 'pUPQoZGL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH39r9d',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class BeautyDevice {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010060014';
      }

      get categoryName() {
          return '\u7f8e\u5bb9\u4eea';
      }

      getIntensity(params) {
          return command({
              method: 'getIntensity',
              methodId: 'pgh07Jxq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pDrhtTub',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'pdN7WcMo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vZONQx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemperature(params) {
          return command({
              method: 'getTargetTemperature',
              methodId: 'phEqB2Zk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTime(params) {
          return command({
              method: 'getTargetTime',
              methodId: 'ptRSe8w1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIntensity(params) {
          return command({
              method: 'setIntensity',
              methodId: 'pUPQoZJV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXzdES',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH39r5L',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemperature(params) {
          return command({
              method: 'setTargetTemperature',
              methodId: 'pZgRqLy3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTime(params) {
          return command({
              method: 'setTargetTime',
              methodId: 'pGoxGSXG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class FacialCleansingDevice {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010060015';
      }

      get categoryName() {
          return '\u6d01\u9762\u4eea';
      }

      getIntensity(params) {
          return command({
              method: 'getIntensity',
              methodId: 'pDrhtT9k',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p1vZONmq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'phEqB2Go',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGoxGSjb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTime(params) {
          return command({
              method: 'getTargetTime',
              methodId: 'pgh07Jo1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIntensity(params) {
          return command({
              method: 'setIntensity',
              methodId: 'pUPQoZDG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXzde3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH39r7V',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTime(params) {
          return command({
              method: 'setTargetTime',
              methodId: 'pZgRqLTx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class HairRemovalDevice {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010060016';
      }

      get categoryName() {
          return '\u8131\u6bdb\u4eea';
      }

      getIntensity(params) {
          return command({
              method: 'getIntensity',
              methodId: 'pDrhtT5o',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p1vZONA1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'phEqB2JW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGoxGSVk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTime(params) {
          return command({
              method: 'getTargetTime',
              methodId: 'pgh07JER',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIntensity(params) {
          return command({
              method: 'setIntensity',
              methodId: 'pUPQoZgb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXzdpx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH39rfG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTime(params) {
          return command({
              method: 'setTargetTime',
              methodId: 'pZgRqLkq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class BathroomMirror {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010060017';
      }

      get categoryName() {
          return '\u6d74\u5ba4\u955c';
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'pGoxGSqo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDefoggerSwitch(params) {
          return command({
              method: 'getDefoggerSwitch',
              methodId: 'pgh07Jez',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLightSwitch(params) {
          return command({
              method: 'getLightSwitch',
              methodId: 'pDrhtT7W',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vZONSR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'peH39rHb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDefoggerSwitch(params) {
          return command({
              method: 'setDefoggerSwitch',
              methodId: 'pZgRqLz1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLightSwitch(params) {
          return command({
              method: 'setLightSwitch',
              methodId: 'pUPQoZKk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAXzdUq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class HandSanitizerDispenser {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010060018';
      }

      get categoryName() {
          return '\u6d17\u624b\u6db2\u673a';
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'pZgRqLMR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQoZwo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'ppAXzdZ1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH39rxk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class HairDryer {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010060019';
      }

      get categoryName() {
          return '\u5439\u98ce\u673a';
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'pZgRqLBz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQoZtW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'ppAXzdGR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH39roo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class GlassesCleaner {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010060020';
      }

      get categoryName() {
          return '\u773c\u955c\u6e05\u6d17\u673a';
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'pZgRqLXE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQoZyI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'ppAXzdJz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH39rsW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartJumpRope {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070001';
      }

      get categoryName() {
          return '\u667a\u80fd\u8df3\u7ef3';
      }

      getMaxContinueNumber(params) {
          return command({
              method: 'getMaxContinueNumber',
              methodId: 'pXZuGnDC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pkpD9Yqm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRealtimeCount(params) {
          return command({
              method: 'getRealtimeCount',
              methodId: 'p0croE7w',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRealtimeTime(params) {
          return command({
              method: 'getRealtimeTime',
              methodId: 'pz93zIOP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getStatus(params) {
          return command({
              method: 'getStatus',
              methodId: 'phEqjJLM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pBTQq9eU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetCount(params) {
          return command({
              method: 'getTargetCount',
              methodId: 'p3deKcz5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTime(params) {
          return command({
              method: 'getTargetTime',
              methodId: 'pdNCa8Kl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTripTimes(params) {
          return command({
              method: 'getTripTimes',
              methodId: 'ptRSF2UK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setContinue(params) {
          return command({
              method: 'setContinue',
              methodId: 'peH3fAmo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFinish(params) {
          return command({
              method: 'setFinish',
              methodId: 'ppAXPr9R',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pGoxILtI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPause(params) {
          return command({
              method: 'setPause',
              methodId: 'p1vZRSBE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'pDrhTN49',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pgh0HT8n',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetCount(params) {
          return command({
              method: 'setTargetCount',
              methodId: 'pZgunZiz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTime(params) {
          return command({
              method: 'setTargetTime',
              methodId: 'pUPQld2W',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class FasciaGun {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070002';
      }

      get categoryName() {
          return '\u7b4b\u819c\u67aa';
      }

      getIntensity(params) {
          return command({
              method: 'getIntensity',
              methodId: 'p1vZRSXn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pGoxILy9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pZgunZJE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIntensity(params) {
          return command({
              method: 'setIntensity',
              methodId: 'pUPQldsI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXPr6z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fAaW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartDumbbell {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070003';
      }

      get categoryName() {
          return '\u667a\u80fd\u54d1\u94c3';
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pdNCa8tw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRealtimeCount(params) {
          return command({
              method: 'getRealtimeCount',
              methodId: 'p0croELr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRealtimeTime(params) {
          return command({
              method: 'getRealtimeTime',
              methodId: 'pz93zI8A',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getStatus(params) {
          return command({
              method: 'getStatus',
              methodId: 'ptRSF2iP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'phEqjJom',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetCount(params) {
          return command({
              method: 'getTargetCount',
              methodId: 'pkpD9z4C',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTime(params) {
          return command({
              method: 'getTargetTime',
              methodId: 'p3deKcBU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setContinue(params) {
          return command({
              method: 'setContinue',
              methodId: 'pZgunZDn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFinish(params) {
          return command({
              method: 'setFinish',
              methodId: 'pGoxIL3M',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'p1vZRSrK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPause(params) {
          return command({
              method: 'setPause',
              methodId: 'pUPQlde9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'ppAXPr7E',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fAOI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetCount(params) {
          return command({
              method: 'setTargetCount',
              methodId: 'pgh0HT95',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTime(params) {
          return command({
              method: 'setTargetTime',
              methodId: 'pDrhTNml',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class HulaHoop {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070004';
      }

      get categoryName() {
          return '\u547c\u5566\u5708';
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pdNCa8yC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRealtimeCount(params) {
          return command({
              method: 'getRealtimeCount',
              methodId: 'p0croExZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRealtimeTime(params) {
          return command({
              method: 'getRealtimeTime',
              methodId: 'pz93zIRd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getStatus(params) {
          return command({
              method: 'getStatus',
              methodId: 'ptRSF2JU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'phEqjJsw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetCount(params) {
          return command({
              method: 'getTargetCount',
              methodId: 'pkpD9znr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTime(params) {
          return command({
              method: 'getTargetTime',
              methodId: 'p3deKcXA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setContinue(params) {
          return command({
              method: 'setContinue',
              methodId: 'pZgunZIK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFinish(params) {
          return command({
              method: 'setFinish',
              methodId: 'pGoxILkl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'p1vZRSV5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPause(params) {
          return command({
              method: 'setPause',
              methodId: 'pUPQldlM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'ppAXPrfn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fAv9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetCount(params) {
          return command({
              method: 'setTargetCount',
              methodId: 'pgh0HT6P',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTime(params) {
          return command({
              method: 'setTargetTime',
              methodId: 'pDrhTNAm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartWatch {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070006';
      }

      get categoryName() {
          return '\u624b\u8868';
      }

      getActualSteps(params) {
          return command({
              method: 'getActualSteps',
              methodId: 'pZgunZhP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGpsPosition(params) {
          return command({
              method: 'getGpsPosition',
              methodId: 'ppAXPrx5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSignalIntensity(params) {
          return command({
              method: 'getSignalIntensity',
              methodId: 'pUPQldZm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setOrientation(params) {
          return command({
              method: 'setOrientation',
              methodId: 'peH3fARl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class MusicSleepLight {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070007';
      }

      get categoryName() {
          return '\u97f3\u4e50\u7761\u7720\u706f';
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'pDrhTNbr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColor(params) {
          return command({
              method: 'getColor',
              methodId: 'ptRSF2KL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColorTemperature(params) {
          return command({
              method: 'getColorTemperature',
              methodId: 'pgh0HTLd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'phEqjJUZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vZRv4A',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'ppAXPr2P',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColor(params) {
          return command({
              method: 'setColor',
              methodId: 'pGoxILBC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColorTemperature(params) {
          return command({
              method: 'setColorTemperature',
              methodId: 'pUPQldiw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pZgunZtU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fA9m',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class Pillow {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070008';
      }

      get categoryName() {
          return '\u6795\u5934';
      }

      getBedOff(params) {
          return command({
              method: 'getBedOff',
              methodId: 'p1vZRvnd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getHeartRate(params) {
          return command({
              method: 'getHeartRate',
              methodId: 'pUPQldJC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRespiratoryRate(params) {
          return command({
              method: 'getRespiratoryRate',
              methodId: 'pZgunZyA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSleepStatus(params) {
          return command({
              method: 'getSleepStatus',
              methodId: 'pGoxILPr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXPrsU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fA6w',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SleepMonitor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070009';
      }

      get categoryName() {
          return '\u7761\u7720\u76d1\u6d4b\u5e26';
      }

      getBedOff(params) {
          return command({
              method: 'getBedOff',
              methodId: 'p1vZRvmL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getHeartRate(params) {
          return command({
              method: 'getHeartRate',
              methodId: 'pUPQld1r',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRespiratoryRate(params) {
          return command({
              method: 'getRespiratoryRate',
              methodId: 'pZgunZ3d',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSleepStatus(params) {
          return command({
              method: 'getSleepStatus',
              methodId: 'pGoxILrZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXPreA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fA7C',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class Treadmill {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070010';
      }

      get categoryName() {
          return '\u8dd1\u6b65\u673a';
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p0croEZR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSlope(params) {
          return command({
              method: 'getSlope',
              methodId: 'p3deKWnk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSpeed(params) {
          return command({
              method: 'getSpeed',
              methodId: 'pdNCa8Pq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getStatus(params) {
          return command({
              method: 'getStatus',
              methodId: 'phEqjJJx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pBTQq9hW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetRange(params) {
          return command({
              method: 'getTargetRange',
              methodId: 'pz93zIxo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTime(params) {
          return command({
              method: 'getTargetTime',
              methodId: 'pkpD9zR1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setContinue(params) {
          return command({
              method: 'setContinue',
              methodId: 'pgh0HTsG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'p1vZRvaV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPause(params) {
          return command({
              method: 'setPause',
              methodId: 'peH3fACr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSlope(params) {
          return command({
              method: 'setSlope',
              methodId: 'pUPQldIZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSpeed(params) {
          return command({
              method: 'setSpeed',
              methodId: 'ppAXPrld',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pDrhTN63',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetRange(params) {
          return command({
              method: 'setTargetRange',
              methodId: 'pGoxILVS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTime(params) {
          return command({
              method: 'setTargetTime',
              methodId: 'pZgunZkL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartMassageChair {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070011';
      }

      get categoryName() {
          return '\u667a\u80fd\u6309\u6469\u6905';
      }

      getIntensity(params) {
          return command({
              method: 'getIntensity',
              methodId: 'pDrhTN7x',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p1vZRvOG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'phEqjJ1q',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGoxILN3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTime(params) {
          return command({
              method: 'getTargetTime',
              methodId: 'pgh0HTeb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIntensity(params) {
          return command({
              method: 'setIntensity',
              methodId: 'pUPQldKS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXPrUL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fALZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTime(params) {
          return command({
              method: 'setTargetTime',
              methodId: 'pZgunZYV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class BloodPressureMonitor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070012';
      }

      get categoryName() {
          return '\u8840\u538b\u8ba1';
      }

      getDiastolicPressure(params) {
          return command({
              method: 'getDiastolicPressure',
              methodId: 'pZgunZ0G',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPulse(params) {
          return command({
              method: 'getPulse',
              methodId: 'pGoxILcx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRecord(params) {
          return command({
              method: 'getRecord',
              methodId: 'pUPQldh3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSystolicPressure(params) {
          return command({
              method: 'getSystolicPressure',
              methodId: 'p1vZRvvb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCleanRecord(params) {
          return command({
              method: 'setCleanRecord',
              methodId: 'ppAXPrFV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'peH3fAxS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartCervicalMassageDevice {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070013';
      }

      get categoryName() {
          return '\u667a\u80fd\u9888\u690e\u6309\u6469\u4eea';
      }

      getIntensity(params) {
          return command({
              method: 'getIntensity',
              methodId: 'p1vZRvbk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pDrhTNL1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'phEqjJKR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGoxILWq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTime(params) {
          return command({
              method: 'getTime',
              methodId: 'pgh0HTUo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIntensity(params) {
          return command({
              method: 'setIntensity',
              methodId: 'ppAXPriG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pUPQldtx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fA23',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTime(params) {
          return command({
              method: 'setTime',
              methodId: 'pZgunZBb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartBracelet {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070015';
      }

      get categoryName() {
          return '\u624b\u73af';
      }

      getActualSteps(params) {
          return command({
              method: 'getActualSteps',
              methodId: 'pZgunZro',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGpsPosition(params) {
          return command({
              method: 'getGpsPosition',
              methodId: 'ppAXPr1k',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSignalIntensity(params) {
          return command({
              method: 'getSignalIntensity',
              methodId: 'pUPQld31',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setOrientation(params) {
          return command({
              method: 'setOrientation',
              methodId: 'peH3fAEq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class HomeWeightScale {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070017';
      }

      get categoryName() {
          return '\u5bb6\u7528\u4f53\u91cd\u79e4';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pZgunZNI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWeight(params) {
          return command({
              method: 'getWeight',
              methodId: 'pUPQldYz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fAUR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setToDefault(params) {
          return command({
              method: 'setToDefault',
              methodId: 'ppAXPrgW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class Oximeter {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070018';
      }

      get categoryName() {
          return '\u8840\u6c27\u4eea';
      }

      getBloodOxygen(params) {
          return command({
              method: 'getBloodOxygen',
              methodId: 'pUPQld0E',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getHeartRate(params) {
          return command({
              method: 'getHeartRate',
              methodId: 'pZgunZc9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRecord(params) {
          return command({
              method: 'getRecord',
              methodId: 'pGoxIHvn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCleanRecord(params) {
          return command({
              method: 'setCleanRecord',
              methodId: 'ppAXPrhI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'peH3fAFz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartCup {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070020';
      }

      get categoryName() {
          return '\u667a\u80fd\u6c34\u676f';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pUPQldPK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSingleDrinkingWater(params) {
          return command({
              method: 'getSingleDrinkingWater',
              methodId: 'pZguninl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXPrdM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fAJn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class EyeProtector {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070021';
      }

      get categoryName() {
          return '\u62a4\u773c\u4eea';
      }

      getIntensity(params) {
          return command({
              method: 'getIntensity',
              methodId: 'pDrhTNiU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p1vZRv2w',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'phEqjJBA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGoxIHuP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTime(params) {
          return command({
              method: 'getTargetTime',
              methodId: 'pgh0HTtC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIntensity(params) {
          return command({
              method: 'setIntensity',
              methodId: 'pUPQldr5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXPr3l',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fA1K',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTime(params) {
          return command({
              method: 'setTargetTime',
              methodId: 'pZgunimm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartAbdominalWheel {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070022';
      }

      get categoryName() {
          return '\u667a\u80fd\u6eda\u8179\u8f6e';
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pDrhTNJA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRealtimeCount(params) {
          return command({
              method: 'getRealtimeCount',
              methodId: 'ptRSFonZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRealtimeTime(params) {
          return command({
              method: 'getRealtimeTime',
              methodId: 'phEqjJPd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pgh0HTdr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setContinue(params) {
          return command({
              method: 'setContinue',
              methodId: 'p1vZRvsC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFinish(params) {
          return command({
              method: 'setFinish',
              methodId: 'pGoxIH6U',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXPrkm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPause(params) {
          return command({
              method: 'setPause',
              methodId: 'peH3fAI5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'pUPQldjP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pZguniaw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class TitaniumSmartCup {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070023';
      }

      get categoryName() {
          return '\u5168\u949b\u667a\u80fd\u6c34\u676f';
      }

      getAppCarouselTime(params) {
          return command({
              method: 'getAppCarouselTime',
              methodId: 'U9KmpTml',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAppDownloadProgress(params) {
          return command({
              method: 'getAppDownloadProgress',
              methodId: 'pDrhTN1d',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'pqYw7pKR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getConnectedWifi(params) {
          return command({
              method: 'getConnectedWifi',
              methodId: 'UaMC1d7E',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentBattery(params) {
          return command({
              method: 'getCurrentBattery',
              methodId: 'UvxD3LDn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFloatBallOnOff(params) {
          return command({
              method: 'getFloatBallOnOff',
              methodId: 'U5s9QJ95',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getInstallAppList(params) {
          return command({
              method: 'getInstallAppList',
              methodId: 'p1vZRvEr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOnOff(params) {
          return command({
              method: 'getOnOff',
              methodId: 'pz93zItx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getScreenOnOff(params) {
          return command({
              method: 'getScreenOnOff',
              methodId: 'pBTQq9Wq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getVolume(params) {
          return command({
              method: 'getVolume',
              methodId: 'pj72OBL1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWifiList(params) {
          return command({
              method: 'getWifiList',
              methodId: 'UnfceaNz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAppCarouselTime(params) {
          return command({
              method: 'setAppCarouselTime',
              methodId: 'pdNCaRuV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAppInstall(params) {
          return command({
              method: 'setAppInstall',
              methodId: 'peH3fAgP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAppMessage(params) {
          return command({
              method: 'setAppMessage',
              methodId: 'URPrXVrK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAppStart(params) {
          return command({
              method: 'setAppStart',
              methodId: 'pUPQldNU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAppStop(params) {
          return command({
              method: 'setAppStop',
              methodId: 'pZguniOC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAppUnInstall(params) {
          return command({
              method: 'setAppUnInstall',
              methodId: 'ppAXPrYw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'pNnZthUo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDismiss(params) {
          return command({
              method: 'setDismiss',
              methodId: 'Ufjiu8iP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFloatBallOnOff(params) {
          return command({
              method: 'setFloatBallOnOff',
              methodId: 'p3deKW23',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setHome(params) {
          return command({
              method: 'setHome',
              methodId: 'phEqjJrL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMultiWindow(params) {
          return command({
              method: 'setMultiWindow',
              methodId: 'UHwwkctw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setNetWorkMode(params) {
          return command({
              method: 'setNetWorkMode',
              methodId: 'U8OTLS3M',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setNextRunningApp(params) {
          return command({
              method: 'setNextRunningApp',
              methodId: 'ptRSFomS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setOnOff(params) {
          return command({
              method: 'setOnOff',
              methodId: 'pkpD9ziG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setReset(params) {
          return command({
              method: 'setReset',
              methodId: 'pWG0B7YW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setScreenOnOff(params) {
          return command({
              method: 'setScreenOnOff',
              methodId: 'p0croEBb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setShow(params) {
          return command({
              method: 'setShow',
              methodId: 'UCb2g2om',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setVolume(params) {
          return command({
              method: 'setVolume',
              methodId: 'pXZuGQbk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWifi(params) {
          return command({
              method: 'setWifi',
              methodId: 'UmaSWrOI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartRunningShoes {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070024';
      }

      get categoryName() {
          return '\u667a\u80fd\u8dd1\u978b';
      }

      getActiveTime(params) {
          return command({
              method: 'getActiveTime',
              methodId: 'p1vZRvlZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDistance(params) {
          return command({
              method: 'getDistance',
              methodId: 'pGoxIHCd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGpsPosition(params) {
          return command({
              method: 'getGpsPosition',
              methodId: 'pUPQldcA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSignalIntensity(params) {
          return command({
              method: 'getSignalIntensity',
              methodId: 'ppAXPr0C',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSteps(params) {
          return command({
              method: 'getSteps',
              methodId: 'pZguniSr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setOrientation(params) {
          return command({
              method: 'setOrientation',
              methodId: 'peH3fAhU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class Helmet {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070025';
      }

      get categoryName() {
          return '\u5934\u76d4';
      }

      getBroadcast(params) {
          return command({
              method: 'getBroadcast',
              methodId: 'ptRSFoOx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getEarphoneSwitch(params) {
          return command({
              method: 'getEarphoneSwitch',
              methodId: 'pdNCaR7b',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGpsPosition(params) {
          return command({
              method: 'getGpsPosition',
              methodId: 'p0croEro',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPlayingStatus(params) {
          return command({
              method: 'getPlayingStatus',
              methodId: 'pkpD9z1k',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSignalIntensity(params) {
          return command({
              method: 'getSignalIntensity',
              methodId: 'pz93zI31',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'phEqjJNG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getVolume(params) {
          return command({
              method: 'getVolume',
              methodId: 'p3deKWEq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBroadcast(params) {
          return command({
              method: 'setBroadcast',
              methodId: 'ppAXPrMr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setChangeControl(params) {
          return command({
              method: 'setChangeControl',
              methodId: 'pDrhTNgV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setEarphoneSwitch(params) {
          return command({
              method: 'setEarphoneSwitch',
              methodId: 'pUPQldWd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setOrientation(params) {
          return command({
              method: 'setOrientation',
              methodId: 'pgh0HTY3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPause(params) {
          return command({
              method: 'setPause',
              methodId: 'p1vZRvUS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPlay(params) {
          return command({
              method: 'setPlay',
              methodId: 'pGoxIHLL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fAtA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setVolume(params) {
          return command({
              method: 'setVolume',
              methodId: 'pZgunibZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class OutdoorSunUmbrella {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070026';
      }

      get categoryName() {
          return '\u6237\u5916\u906e\u9633\u4f1e';
      }

      getLedBrightness(params) {
          return command({
              method: 'getLedBrightness',
              methodId: 'p1vZRvF3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLedSwitch(params) {
          return command({
              method: 'getLedSwitch',
              methodId: 'pGoxIHHV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pZguniRS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLedBrightness(params) {
          return command({
              method: 'setLedBrightness',
              methodId: 'pUPQlynL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLedSwitch(params) {
          return command({
              method: 'setLedSwitch',
              methodId: 'ppAXPrPZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fAdd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartPillBox {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070027';
      }

      get categoryName() {
          return '\u667a\u80fd\u836f\u76d2';
      }

      getMedicineStatus(params) {
          return command({
              method: 'getMedicineStatus',
              methodId: 'pZguniu3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSeparateSwitch(params) {
          return command({
              method: 'getSeparateSwitch',
              methodId: 'pUPQlyQV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMedicineStatus(params) {
          return command({
              method: 'setMedicineStatus',
              methodId: 'ppAXPrrS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSeparateSwitch(params) {
          return command({
              method: 'setSeparateSwitch',
              methodId: 'peH3fA3L',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class BloodGlucoseMeter {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070028';
      }

      get categoryName() {
          return '\u8840\u7cd6\u4eea';
      }

      getBloodGlucose(params) {
          return command({
              method: 'getBloodGlucose',
              methodId: 'ppAXPrj3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'peH3fATV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartChildrenThermosCup {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070029';
      }

      get categoryName() {
          return '\u513f\u7ae5\u667a\u80fd\u6c34\u676f';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pUPQlyOb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSingleDrinkingWater(params) {
          return command({
              method: 'getSingleDrinkingWater',
              methodId: 'pZguni5q',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXPrNx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fAYG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class OxygenConcentrator {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070030';
      }

      get categoryName() {
          return '\u5236\u6c27\u673a';
      }

      getDuration(params) {
          return command({
              method: 'getDuration',
              methodId: 'pgh0HTjz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFlowRate(params) {
          return command({
              method: 'getFlowRate',
              methodId: 'pDrhTNTW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOxygenConcentration(params) {
          return command({
              method: 'getOxygenConcentration',
              methodId: 'p1vZRvIR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'phEqj1aI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGoxIHlo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDuration(params) {
          return command({
              method: 'setDuration',
              methodId: 'pZguniC1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFlowRate(params) {
          return command({
              method: 'setFlowRate',
              methodId: 'pUPQlySk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setOxygenConcentration(params) {
          return command({
              method: 'setOxygenConcentration',
              methodId: 'ppAXPrqq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fA0b',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ForeheadThermometer {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070031';
      }

      get categoryName() {
          return '\u989d\u6e29\u67aa';
      }

      getTemperature(params) {
          return command({
              method: 'getTemperature',
              methodId: 'ppAXPrW1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'peH3fAMk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class PhysiotherapyInstrument {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070033';
      }

      get categoryName() {
          return '\u7406\u7597\u4eea';
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'pgh0HTWK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pDrhTNMM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'pdNCaRUm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vZRvtn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemperature(params) {
          return command({
              method: 'getTargetTemperature',
              methodId: 'phEqj1bl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTime(params) {
          return command({
              method: 'getTargetTime',
              methodId: 'ptRSFoL5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'pUPQlyuI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXPjQz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fAXW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemperature(params) {
          return command({
              method: 'setTargetTemperature',
              methodId: 'pZguni2E',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTime(params) {
          return command({
              method: 'setTargetTime',
              methodId: 'pGoxIHi9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class LegandFootMassager {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070035';
      }

      get categoryName() {
          return '\u817f\u8db3\u6309\u6469\u4eea';
      }

      getIntensity(params) {
          return command({
              method: 'getIntensity',
              methodId: 'pDrhTNrm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p1vZRv35',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'phEqj1uw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGoxIH1l',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTime(params) {
          return command({
              method: 'getTargetTime',
              methodId: 'pgh0HkQP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIntensity(params) {
          return command({
              method: 'setIntensity',
              methodId: 'pUPQly5M',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXPjOn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fAN9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTime(params) {
          return command({
              method: 'setTargetTime',
              methodId: 'pZguniEK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class AbdominalMassager {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070036';
      }

      get categoryName() {
          return '\u8179\u90e8\u6309\u6469\u4eea';
      }

      getIntensity(params) {
          return command({
              method: 'getIntensity',
              methodId: 'pDrhTNjw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p1vZRvTP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'phEqj16C',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGoxIHIm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTime(params) {
          return command({
              method: 'getTargetTime',
              methodId: 'pgh0HkaU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIntensity(params) {
          return command({
              method: 'setIntensity',
              methodId: 'pUPQlyCl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXPjSK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fAqM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTime(params) {
          return command({
              method: 'setTargetTime',
              methodId: 'pZgunil5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class LumbarMassager {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070037';
      }

      get categoryName() {
          return '\u8170\u90e8\u6309\u6469\u4eea';
      }

      getIntensity(params) {
          return command({
              method: 'getIntensity',
              methodId: 'pDrhTNNC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p1vZRvYU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'phEqj15r',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGoxIHgw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTime(params) {
          return command({
              method: 'getTargetTime',
              methodId: 'pgh0HkOA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIntensity(params) {
          return command({
              method: 'setIntensity',
              methodId: 'pUPQlyLm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXPjb5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fAWl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTime(params) {
          return command({
              method: 'setTargetTime',
              methodId: 'pZgunipP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class FetalHeartMonitor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070038';
      }

      get categoryName() {
          return '\u80ce\u5fc3\u4eea';
      }

      getHeartRate(params) {
          return command({
              method: 'getHeartRate',
              methodId: 'ppAXPj8P',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'peH3fOnm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SleepButton {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070041';
      }

      get categoryName() {
          return '\u7761\u7720\u7ebd\u6263';
      }

      getBedOff(params) {
          return command({
              method: 'getBedOff',
              methodId: 'p1vZRvXV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getHeartRate(params) {
          return command({
              method: 'getHeartRate',
              methodId: 'pUPQlyEZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRespiratoryRate(params) {
          return command({
              method: 'getRespiratoryRate',
              methodId: 'pZguni1L',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSleepStatus(params) {
          return command({
              method: 'getSleepStatus',
              methodId: 'pGoxIH3S',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXPj5d',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fOAr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class BadmintonRacket {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070042';
      }

      get categoryName() {
          return '\u7fbd\u6bdb\u7403\u62cd';
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pdNCaRd1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRealtimeCount(params) {
          return command({
              method: 'getRealtimeCount',
              methodId: 'p0croeHz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRealtimeTime(params) {
          return command({
              method: 'getRealtimeTime',
              methodId: 'pz93zg8W',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getStatus(params) {
          return command({
              method: 'getStatus',
              methodId: 'ptRSFoGk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'phEqj1oq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetCount(params) {
          return command({
              method: 'getTargetCount',
              methodId: 'pkpD90nR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTime(params) {
          return command({
              method: 'getTargetTime',
              methodId: 'p3deKWPo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setContinue(params) {
          return command({
              method: 'setContinue',
              methodId: 'pZguniDV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFinish(params) {
          return command({
              method: 'setFinish',
              methodId: 'pGoxIHT3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'p1vZRvjG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPause(params) {
          return command({
              method: 'setPause',
              methodId: 'pUPQlylS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'ppAXPjCL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fOSZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetCount(params) {
          return command({
              method: 'setTargetCount',
              methodId: 'pgh0Hk6b',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTime(params) {
          return command({
              method: 'setTargetTime',
              methodId: 'pDrhTqax',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class TennisRacket {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070043';
      }

      get categoryName() {
          return '\u7f51\u7403\u62cd';
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pdNCaR3R',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRealtimeCount(params) {
          return command({
              method: 'getRealtimeCount',
              methodId: 'p0croe2E',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRealtimeTime(params) {
          return command({
              method: 'getRealtimeTime',
              methodId: 'pz93zguI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getStatus(params) {
          return command({
              method: 'getStatus',
              methodId: 'ptRSFo1o',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'phEqj1E1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetCount(params) {
          return command({
              method: 'getTargetCount',
              methodId: 'pkpD90Qz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTime(params) {
          return command({
              method: 'getTargetTime',
              methodId: 'p3deKWXW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setContinue(params) {
          return command({
              method: 'setContinue',
              methodId: 'pZgunigG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFinish(params) {
          return command({
              method: 'setFinish',
              methodId: 'pGoxIHYx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'p1vZRvNb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPause(params) {
          return command({
              method: 'setPause',
              methodId: 'pUPQlyp3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'ppAXPjfV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fObS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetCount(params) {
          return command({
              method: 'setTargetCount',
              methodId: 'pgh0Hk5k',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTime(params) {
          return command({
              method: 'setTargetTime',
              methodId: 'pDrhTqAq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class WristStrengthener {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070044';
      }

      get categoryName() {
          return '\u8155\u529b\u7403';
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pdNCaRTz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRealtimeCount(params) {
          return command({
              method: 'getRealtimeCount',
              methodId: 'p0croesn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRealtimeTime(params) {
          return command({
              method: 'getRealtimeTime',
              methodId: 'pz93zg69',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getStatus(params) {
          return command({
              method: 'getStatus',
              methodId: 'ptRSFoDW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'phEqj1lR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetCount(params) {
          return command({
              method: 'getTargetCount',
              methodId: 'pkpD90aE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTime(params) {
          return command({
              method: 'getTargetTime',
              methodId: 'p3deKWjI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setContinue(params) {
          return command({
              method: 'setContinue',
              methodId: 'pZgunihb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFinish(params) {
          return command({
              method: 'setFinish',
              methodId: 'pGoxIHzq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'p1vZRvqk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPause(params) {
          return command({
              method: 'setPause',
              methodId: 'pUPQlyFx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'ppAXPjHG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fO83',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetCount(params) {
          return command({
              method: 'setTargetCount',
              methodId: 'pgh0HkCo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTime(params) {
          return command({
              method: 'setTargetTime',
              methodId: 'pDrhTqS1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ResistanceBand {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070045';
      }

      get categoryName() {
          return '\u62c9\u529b\u5668';
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pdNCaRYE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRealtimeCount(params) {
          return command({
              method: 'getRealtimeCount',
              methodId: 'p0croeEK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRealtimeTime(params) {
          return command({
              method: 'getRealtimeTime',
              methodId: 'pz93zg5M',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getStatus(params) {
          return command({
              method: 'getStatus',
              methodId: 'ptRSFogI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'phEqj1pz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetCount(params) {
          return command({
              method: 'getTargetCount',
              methodId: 'pkpD90On',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTime(params) {
          return command({
              method: 'getTargetTime',
              methodId: 'p3deKWN9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setContinue(params) {
          return command({
              method: 'setContinue',
              methodId: 'pZguniwk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFinish(params) {
          return command({
              method: 'setFinish',
              methodId: 'pGoxIHM1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'p1vZRvWo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPause(params) {
          return command({
              method: 'setPause',
              methodId: 'pUPQlyZq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'ppAXPj2b',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fOux',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetCount(params) {
          return command({
              method: 'setTargetCount',
              methodId: 'pgh0HkfW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTime(params) {
          return command({
              method: 'setTargetTime',
              methodId: 'pDrhTqbR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class RowingMachine {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070046';
      }

      get categoryName() {
          return '\u5212\u8239\u673a';
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pdNCaR0n',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRealtimeCount(params) {
          return command({
              method: 'getRealtimeCount',
              methodId: 'p0croel5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRealtimeTime(params) {
          return command({
              method: 'getRealtimeTime',
              methodId: 'pz93zgCl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getStatus(params) {
          return command({
              method: 'getStatus',
              methodId: 'ptRSFoh9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'phEqj1FE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetCount(params) {
          return command({
              method: 'getTargetCount',
              methodId: 'pkpD90SK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTime(params) {
          return command({
              method: 'getTargetTime',
              methodId: 'p3deKWqM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setContinue(params) {
          return command({
              method: 'setContinue',
              methodId: 'pZgunido',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFinish(params) {
          return command({
              method: 'setFinish',
              methodId: 'pGoxIHPR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'p1vZRb4W',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPause(params) {
          return command({
              method: 'setPause',
              methodId: 'pUPQlyG1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'ppAXPjok',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fO9q',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetCount(params) {
          return command({
              method: 'setTargetCount',
              methodId: 'pgh0HkHI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTime(params) {
          return command({
              method: 'setTargetTime',
              methodId: 'pDrhTq8z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SelfBalancingScooter {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070048';
      }

      get categoryName() {
          return '\u5e73\u8861\u8f66';
      }

      getEnduranceMileage(params) {
          return command({
              method: 'getEnduranceMileage',
              methodId: 'p1vZRba9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGpsPosition(params) {
          return command({
              method: 'getGpsPosition',
              methodId: 'pGoxIHjE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOnceMileage(params) {
          return command({
              method: 'getOnceMileage',
              methodId: 'pDrhTq6n',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOnceRidetime(params) {
          return command({
              method: 'getOnceRidetime',
              methodId: 'pgh0HkoM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSignalIntensity(params) {
          return command({
              method: 'getSignalIntensity',
              methodId: 'pZguniTI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQlyDz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSearch(params) {
          return command({
              method: 'setSearch',
              methodId: 'ppAXPjeW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fOCR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ElectricScooter {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070049';
      }

      get categoryName() {
          return '\u6ed1\u677f\u8f66';
      }

      getEnduranceMileage(params) {
          return command({
              method: 'getEnduranceMileage',
              methodId: 'p1vZRbAM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGpsPosition(params) {
          return command({
              method: 'getGpsPosition',
              methodId: 'pGoxIHNn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOnceMileage(params) {
          return command({
              method: 'getOnceMileage',
              methodId: 'pDrhTq5K',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOnceRidetime(params) {
          return command({
              method: 'getOnceRidetime',
              methodId: 'pgh0HkEl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSignalIntensity(params) {
          return command({
              method: 'getSignalIntensity',
              methodId: 'pZguniY9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQlygE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSearch(params) {
          return command({
              method: 'setSearch',
              methodId: 'ppAXPjpI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fOfz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ElectricWheelchair {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070050';
      }

      get categoryName() {
          return '\u7535\u52a8\u8f6e\u6905';
      }

      getEnduranceMileage(params) {
          return command({
              method: 'getEnduranceMileage',
              methodId: 'p1vZRbSl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGpsPosition(params) {
          return command({
              method: 'getGpsPosition',
              methodId: 'pGoxIHqK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOnceMileage(params) {
          return command({
              method: 'getOnceMileage',
              methodId: 'pDrhTqC5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOnceRidetime(params) {
          return command({
              method: 'getOnceRidetime',
              methodId: 'pgh0Hklm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSignalIntensity(params) {
          return command({
              method: 'getSignalIntensity',
              methodId: 'pZgunizM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQlyhn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSearch(params) {
          return command({
              method: 'setSearch',
              methodId: 'ppAXPjF9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fOHE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ChildrenRidingVehicle {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070051';
      }

      get categoryName() {
          return '\u513f\u7ae5\u9a91\u4e58\u8f66';
      }

      getEnduranceMileage(params) {
          return command({
              method: 'getEnduranceMileage',
              methodId: 'p1vZRbbm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGpsPosition(params) {
          return command({
              method: 'getGpsPosition',
              methodId: 'pGoxIHW5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOnceMileage(params) {
          return command({
              method: 'getOnceMileage',
              methodId: 'pDrhTqfP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOnceRidetime(params) {
          return command({
              method: 'getOnceRidetime',
              methodId: 'pgh0Hkpw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSignalIntensity(params) {
          return command({
              method: 'getSignalIntensity',
              methodId: 'pZguniMl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQlywK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSearch(params) {
          return command({
              method: 'setSearch',
              methodId: 'ppAXPjZM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fO2n',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class EarThermometer {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070052';
      }

      get categoryName() {
          return '\u8033\u6e29\u67aa';
      }

      getTemperature(params) {
          return command({
              method: 'getTemperature',
              methodId: 'ppAXPjGl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStart(params) {
          return command({
              method: 'setStart',
              methodId: 'peH3fOoK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class WarmingBelt {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070053';
      }

      get categoryName() {
          return '\u6696\u5bab\u8170\u5e26';
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'pZguniXw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQlyyP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'ppAXPj1m',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fOE5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class HeadMassager {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070054';
      }

      get categoryName() {
          return '\u5934\u90e8\u6309\u6469\u4eea';
      }

      getIntensity(params) {
          return command({
              method: 'getIntensity',
              methodId: 'pDrhTqod',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'p1vZRb9r',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'phEqj1dL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGoxIxaA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTime(params) {
          return command({
              method: 'getTargetTime',
              methodId: 'pgh0HkGZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIntensity(params) {
          return command({
              method: 'setIntensity',
              methodId: 'pUPQlyTU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAXPjDw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fOeP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTime(params) {
          return command({
              method: 'setTargetTime',
              methodId: 'pZgunijC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class AirPump {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010070055';
      }

      get categoryName() {
          return '\u5145\u6c14\u6cf5';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXPjgC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3fOpU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class WaterPump {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010080003';
      }

      get categoryName() {
          return '\u6c34\u6cf5';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXNAEl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH32C5K',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class GameController {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010080006';
      }

      get categoryName() {
          return '\u6e38\u620f\u64cd\u7eb5\u6746';
      }

      getBacklightColor(params) {
          return command({
              method: 'getBacklightColor',
              methodId: 'pdNCv2jG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getButton(params) {
          return command({
              method: 'getButton',
              methodId: 'pDrhMvCL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPosition(params) {
          return command({
              method: 'getPosition',
              methodId: 'pgh0sNlS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPressMode(params) {
          return command({
              method: 'getPressMode',
              methodId: 'p1vZ5HSZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSensitivity(params) {
          return command({
              method: 'getSensitivity',
              methodId: 'phEqcTDV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGoxwZqd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getVibration(params) {
          return command({
              method: 'getVibration',
              methodId: 'ptRSJJT3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBacklightColor(params) {
          return command({
              method: 'setBacklightColor',
              methodId: 'pZguAdzr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSensitivity(params) {
          return command({
              method: 'setSensitivity',
              methodId: 'ppAXNAFC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH32CHU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setVibration(params) {
          return command({
              method: 'setVibration',
              methodId: 'pUPQZrhA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class GestureRecognition {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010080008';
      }

      get categoryName() {
          return '\u624b\u52bf\u8bc6\u522b\u5668';
      }

      getMovingDirection(params) {
          return command({
              method: 'getMovingDirection',
              methodId: 'pUPQZrdL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRotationDirection(params) {
          return command({
              method: 'getRotationDirection',
              methodId: 'pZguAdPS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwingStatus(params) {
          return command({
              method: 'getSwingStatus',
              methodId: 'pGoxwi4V',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXNAGZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH32Cod',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class DisplayScreen {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010080009';
      }

      get categoryName() {
          return '\u663e\u793a\u5c4f';
      }

      getArticulation(params) {
          return command({
              method: 'getArticulation',
              methodId: 'Umavaarm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAspectRatio(params) {
          return command({
              method: 'getAspectRatio',
              methodId: 'UnfcF735',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'pBTmnEYE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColorTemperature(params) {
          return command({
              method: 'getColorTemperature',
              methodId: 'pj72RQOn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getContrastRatio(params) {
          return command({
              method: 'getContrastRatio',
              methodId: 'pXZuI9N9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDisplayColor(params) {
          return command({
              method: 'getDisplayColor',
              methodId: 'pWG0jp1l',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDisplayMethod(params) {
          return command({
              method: 'getDisplayMethod',
              methodId: 'UODl9duw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDisplayMode(params) {
          return command({
              method: 'getDisplayMode',
              methodId: 'pqYwHhEK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getImage(params) {
          return command({
              method: 'getImage',
              methodId: 'U8OToLiC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getResponseSpeed(params) {
          return command({
              method: 'getResponseSpeed',
              methodId: 'UaMCKrQP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSignalSource(params) {
          return command({
              method: 'getSignalSource',
              methodId: 'pNnZTB5M',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p0crlIgI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getText(params) {
          return command({
              method: 'getText',
              methodId: 'UvxDzZ2U',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getVideo(params) {
          return command({
              method: 'getVideo',
              methodId: 'URPrqStA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setArticulation(params) {
          return command({
              method: 'setArticulation',
              methodId: 'phEqcTwk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAspectRatio(params) {
          return command({
              method: 'setAspectRatio',
              methodId: 'pgh0sNZq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'ppAXNA1S',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColorTemperature(params) {
          return command({
              method: 'setColorTemperature',
              methodId: 'pZguAdX3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setContrastRatio(params) {
          return command({
              method: 'setContrastRatio',
              methodId: 'pUPQZryV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDisplayColor(params) {
          return command({
              method: 'setDisplayColor',
              methodId: 'pDrhMv2b',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDisplayMethod(params) {
          return command({
              method: 'setDisplayMethod',
              methodId: 'pdNCv2Wo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDisplayMode(params) {
          return command({
              method: 'setDisplayMode',
              methodId: 'p1vZ5Hux',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setImage(params) {
          return command({
              method: 'setImage',
              methodId: 'pkpDCWfW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setResponseSpeed(params) {
          return command({
              method: 'setResponseSpeed',
              methodId: 'ptRSJJM1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSignalSource(params) {
          return command({
              method: 'setSignalSource',
              methodId: 'pGoxwiQG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH32CEL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setText(params) {
          return command({
              method: 'setText',
              methodId: 'p3deyRbR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setVideo(params) {
          return command({
              method: 'setVideo',
              methodId: 'pz93Pzpz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class RFID {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010080010';
      }

      get categoryName() {
          return '\u0052\u0046\u0049\u0044\u8bfb\u5199\u5668';
      }

      getCardId(params) {
          return command({
              method: 'getCardId',
              methodId: 'ppAXNAD3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getInfo(params) {
          return command({
              method: 'getInfo',
              methodId: 'pUPQZrTG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setInfo(params) {
          return command({
              method: 'setInfo',
              methodId: 'peH32CeV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class Button {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010080013';
      }

      get categoryName() {
          return '\u6309\u952e';
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class RotaryEncoder {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010080015';
      }

      get categoryName() {
          return '\u65cb\u8f6c\u7f16\u7801\u5668';
      }

      getButtonStatus(params) {
          return command({
              method: 'getButtonStatus',
              methodId: 'pUPQZrXI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'ppAXNAyz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRotationDirection(params) {
          return command({
              method: 'getRotationDirection',
              methodId: 'peH32CJW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class RainSensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010080019';
      }

      get categoryName() {
          return '\u96e8\u6c34\u4f20\u611f\u5668';
      }

      getPrecipitationAmount(params) {
          return command({
              method: 'getPrecipitationAmount',
              methodId: 'ppAXNAM5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRainDetectionStatus(params) {
          return command({
              method: 'getRainDetectionStatus',
              methodId: 'peH32Cwl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class BarcodeScanner {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010080029';
      }

      get categoryName() {
          return '\u6761\u7801\u626b\u63cf';
      }

      getCode(params) {
          return command({
              method: 'getCode',
              methodId: 'pUPQZj5R',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXNOAo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH32CV1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class MagicCubeController {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010080035';
      }

      get categoryName() {
          return '\u9b54\u65b9\u63a7\u5236\u5668';
      }

      getAction(params) {
          return command({
              method: 'getAction',
              methodId: 'peH32fA5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFaceup(params) {
          return command({
              method: 'getFaceup',
              methodId: 'ppAXNO5m',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class RockingChair {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010080036';
      }

      get categoryName() {
          return '\u6447\u6447\u6905';
      }

      getSwing(params) {
          return command({
              method: 'getSwing',
              methodId: 'pZguAyDC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQZjeU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwing(params) {
          return command({
              method: 'setSwing',
              methodId: 'ppAXNO7w',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH32fOP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SafetySeat {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010080037';
      }

      get categoryName() {
          return '\u5b89\u5168\u5ea7\u6905';
      }

      getSafetyBelt(params) {
          return command({
              method: 'getSafetyBelt',
              methodId: 'pUPQZjpA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSeated(params) {
          return command({
              method: 'getSeated',
              methodId: 'ppAXNOfC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemperature(params) {
          return command({
              method: 'getTemperature',
              methodId: 'pZguAyIr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTemperature(params) {
          return command({
              method: 'setTemperature',
              methodId: 'peH32fvU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class BabyCrib {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010080038';
      }

      get categoryName() {
          return '\u5a74\u513f\u5e8a';
      }

      getBedOff(params) {
          return command({
              method: 'getBedOff',
              methodId: 'p1vZ5HqS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getHeartRate(params) {
          return command({
              method: 'getHeartRate',
              methodId: 'pUPQZjUd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRespiratoryRate(params) {
          return command({
              method: 'getRespiratoryRate',
              methodId: 'pZguAyKZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSleepStatus(params) {
          return command({
              method: 'getSleepStatus',
              methodId: 'pGoxwizL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXNOLr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH32f8A',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class BabyWalker {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010080039';
      }

      get categoryName() {
          return '\u5b66\u6b65\u8f66';
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'pZguAywS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQZjZL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'ppAXNOxZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH32fRd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ArduinoCompatibleDevice {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010080040';
      }

      get categoryName() {
          return '\u0041\u0072\u0064\u0075\u0069\u006e\u006f\u5f00\u53d1\u677f';
      }

      setDevMessage(params) {
          return command({
              method: 'setDevMessage',
              methodId: 'peH32f9L',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class MagneticFieldSensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010080041';
      }

      get categoryName() {
          return '\u78c1\u573a\u4f20\u611f\u5668';
      }

      getIsMagnetic(params) {
          return command({
              method: 'getIsMagnetic',
              methodId: 'pgh0sqx1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMagneticFieldDirection(params) {
          return command({
              method: 'getMagneticFieldDirection',
              methodId: 'pZguAyyx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMagneticFieldStrength(params) {
          return command({
              method: 'getMagneticFieldStrength',
              methodId: 'pUPQZjJG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXNOs3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH32f6V',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ButtonPanel {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010080042';
      }

      get categoryName() {
          return '\u591a\u529f\u80fd\u6309\u952e';
      }

      getDigitString(params) {
          return command({
              method: 'getDigitString',
              methodId: 'pZguAy3q',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDuration(params) {
          return command({
              method: 'getDuration',
              methodId: 'ppAXNOex',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getNumber(params) {
          return command({
              method: 'getNumber',
              methodId: 'pUPQZjDb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getType(params) {
          return command({
              method: 'getType',
              methodId: 'peH32f7G',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class EnvironmentSensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010080043';
      }

      get categoryName() {
          return '\u73af\u5883\u4f20\u611f\u5668';
      }

      getAirStatus(params) {
          return command({
              method: 'getAirStatus',
              methodId: 'p1vZ5xAR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCoStatus(params) {
          return command({
              method: 'getCoStatus',
              methodId: 'pZguAyk1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getHumidity(params) {
          return command({
              method: 'getHumidity',
              methodId: 'ppAXNOlq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLightIntensity(params) {
          return command({
              method: 'getLightIntensity',
              methodId: 'pUPQZjIk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSmokeStatus(params) {
          return command({
              method: 'getSmokeStatus',
              methodId: 'pGoxwiVo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemperature(params) {
          return command({
              method: 'getTemperature',
              methodId: 'peH32ffb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class HeartRateMonitor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010080044';
      }

      get categoryName() {
          return '\u5fc3\u7387\u8840\u6c27\u4eea';
      }

      getBloodOxygen(params) {
          return command({
              method: 'getBloodOxygen',
              methodId: 'pZguAyzR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getHeartRate(params) {
          return command({
              method: 'getHeartRate',
              methodId: 'pUPQZjKo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAXNOU1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH32fLk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class HumanThermalSensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010080045';
      }

      get categoryName() {
          return '\u4eba\u4f53\u611f\u5e94\u5f00\u5173';
      }

      getIsExists(params) {
          return command({
              method: 'getIsExists',
              methodId: 'peH32fxo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class IMUGyroscope {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010080046';
      }

      get categoryName() {
          return '\u9640\u87ba\u4eea';
      }

      getAccelerationX(params) {
          return command({
              method: 'getAccelerationX',
              methodId: 'nan',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAccelerationY(params) {
          return command({
              method: 'getAccelerationY',
              methodId: 'nan',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAccelerationZ(params) {
          return command({
              method: 'getAccelerationZ',
              methodId: 'nan',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPithAngle(params) {
          return command({
              method: 'getPithAngle',
              methodId: 'nan',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRowAngle(params) {
          return command({
              method: 'getRowAngle',
              methodId: 'nan',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'nan',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getXAxisAngularDisplacement(params) {
          return command({
              method: 'getXAxisAngularDisplacement',
              methodId: 'nan',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getXAxisAngularVelocity(params) {
          return command({
              method: 'getXAxisAngularVelocity',
              methodId: 'nan',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getYAxisAngularDisplacement(params) {
          return command({
              method: 'getYAxisAngularDisplacement',
              methodId: 'nan',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getYAxisAngularVelocity(params) {
          return command({
              method: 'getYAxisAngularVelocity',
              methodId: 'nan',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getYawAngle(params) {
          return command({
              method: 'getYawAngle',
              methodId: 'nan',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getZAxisAngularDisplacement(params) {
          return command({
              method: 'getZAxisAngularDisplacement',
              methodId: 'nan',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getZAxisAngularVelocity(params) {
          return command({
              method: 'getZAxisAngularVelocity',
              methodId: 'nan',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGyroCalibration(params) {
          return command({
              method: 'setGyroCalibration',
              methodId: 'nan',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'nan',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SteeringGear {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010080047';
      }

      get categoryName() {
          return '\u8235\u673a';
      }

      getRotationAngle(params) {
          return command({
              method: 'getRotationAngle',
              methodId: 'p1vZ5x95',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRotationDirection(params) {
          return command({
              method: 'getRotationDirection',
              methodId: 'pGoxwGml',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pZguAyrK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setRotationAngle(params) {
          return command({
              method: 'setRotationAngle',
              methodId: 'pUPQZj3M',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setRotationDirection(params) {
          return command({
              method: 'setRotationDirection',
              methodId: 'ppAXNODn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH32fe9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class MatrixLight {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010080048';
      }

      get categoryName() {
          return '\u77e9\u9635\u706f';
      }

      getColor(params) {
          return command({
              method: 'getColor',
              methodId: 'pZguAyrK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFlashMode(params) {
          return command({
              method: 'getFlashMode',
              methodId: 'p1vZ5x95',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFrequency(params) {
          return command({
              method: 'getFrequency',
              methodId: 'pdNCvs4C',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGoxwGml',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColor(params) {
          return command({
              method: 'setColor',
              methodId: 'ppAXNODn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFlashMode(params) {
          return command({
              method: 'setFlashMode',
              methodId: 'pUPQZj3M',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFrequency(params) {
          return command({
              method: 'setFrequency',
              methodId: 'ptRSJ1BU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH32fe9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class Motor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010080050';
      }

      get categoryName() {
          return '\u5c0f\u8f66';
      }

      getLeftWheelRotationSpeed(params) {
          return command({
              method: 'getLeftWheelRotationSpeed',
              methodId: 'phEqck3r',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMotorRotationSpeed(params) {
          return command({
              method: 'getMotorRotationSpeed',
              methodId: 'pgh0sqDA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMovementDirection(params) {
          return command({
              method: 'getMovementDirection',
              methodId: 'pDrhMbeC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRightWheelRotationSpeed(params) {
          return command({
              method: 'getRightWheelRotationSpeed',
              methodId: 'ptRSJ1rd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vZ5x7U',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLeftWheelRotationSpeed(params) {
          return command({
              method: 'setLeftWheelRotationSpeed',
              methodId: 'pZguAyNP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMotorRotationSpeed(params) {
          return command({
              method: 'setMotorRotationSpeed',
              methodId: 'pUPQZjzm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMovementDirection(params) {
          return command({
              method: 'setMovementDirection',
              methodId: 'ppAXNOK5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setRightWheelRotationSpeed(params) {
          return command({
              method: 'setRightWheelRotationSpeed',
              methodId: 'pGoxwGOw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH32fUl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class RainfallSensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010080051';
      }

      get categoryName() {
          return '\u96e8\u91cf\u4f20\u611f\u5668';
      }

      getIsRaining(params) {
          return command({
              method: 'getIsRaining',
              methodId: 'peH32fZm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPrecipitationAmount(params) {
          return command({
              method: 'getPrecipitationAmount',
              methodId: 'pUPQZj0w',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPrecipitationLevel(params) {
          return command({
              method: 'getPrecipitationLevel',
              methodId: 'ppAXNOhP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class LowPressurePump {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010080052';
      }

      get categoryName() {
          return '\u4f4e\u538b\u6c34\u6cf5';
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'pGoxwGbr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPumpSpeed(params) {
          return command({
              method: 'getPumpSpeed',
              methodId: 'p1vZ5xLd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pZguA34A',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemperature(params) {
          return command({
              method: 'getTemperature',
              methodId: 'pDrhMbUZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWaterPressure(params) {
          return command({
              method: 'getWaterPressure',
              methodId: 'pgh0sqKL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'ppAXNOtU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPumpSpeed(params) {
          return command({
              method: 'setPumpSpeed',
              methodId: 'pUPQZjBC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH32fiw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class Display {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010080053';
      }

      get categoryName() {
          return '\u5c4f\u5e55';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'peH32fJC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTextSize(params) {
          return command({
              method: 'getTextSize',
              methodId: 'ppAXNOyA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWordSpacing(params) {
          return command({
              method: 'getWordSpacing',
              methodId: 'pUPQZjPr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLineSpacing(params) {
          return command({
              method: 'getLineSpacing',
              methodId: 'pZguA3nd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pGoxwGRZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setImage(params) {
          return command({
              method: 'setImage',
              methodId: 'p1vZ5xxL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setText(params) {
          return command({
              method: 'setText',
              methodId: 'pDrhMbZS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTextColor(params) {
          return command({
              method: 'setTextColor',
              methodId: 'pgh0sqhV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTextSize(params) {
          return command({
              method: 'setTextSize',
              methodId: 'phEqck03',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWordSpacing(params) {
          return command({
              method: 'setWordSpacing',
              methodId: 'ptRSJ1cG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLineSpacing(params) {
          return command({
              method: 'setLineSpacing',
              methodId: 'pdNCvsvx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGif(params) {
          return command({
              method: 'setGif',
              methodId: 'p3deyufb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setStartPosition(params) {
          return command({
              method: 'setStartPosition',
              methodId: 'pkpDf4lq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartPetFeeder {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010090001';
      }

      get categoryName() {
          return '\u5ba0\u7269\u5582\u98df\u5668';
      }

      getAllRecord(params) {
          return command({
              method: 'getAllRecord',
              methodId: 'pXZuwEXx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAutoFeedSwitch(params) {
          return command({
              method: 'getAutoFeedSwitch',
              methodId: 'pdNCuJVZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFeedAmount(params) {
          return command({
              method: 'getFeedAmount',
              methodId: 'p3deYoAL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFeedLidSwitch(params) {
          return command({
              method: 'getFeedLidSwitch',
              methodId: 'p0crZzJ3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFeedRecord(params) {
          return command({
              method: 'getFeedRecord',
              methodId: 'pBTmAIyG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getIndicatorLightSwitch(params) {
          return command({
              method: 'getIndicatorLightSwitch',
              methodId: 'pkpD2R5S',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLackFoodRemindSwitch(params) {
          return command({
              method: 'getLackFoodRemindSwitch',
              methodId: 'pj7256Qb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLackFoodRemindValue(params) {
          return command({
              method: 'getLackFoodRemindValue',
              methodId: 'pNnZMQRq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLackFoodStatus(params) {
          return command({
              method: 'getLackFoodStatus',
              methodId: 'pqYwsBxk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getManualFeedSwitch(params) {
          return command({
              method: 'getManualFeedSwitch',
              methodId: 'UnfcJpwo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainingFood(params) {
          return command({
              method: 'getRemainingFood',
              methodId: 'pz93VWsV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'phEcQNIr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkMode(params) {
          return command({
              method: 'getWorkMode',
              methodId: 'ptRSgTkd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAutoFeedMode(params) {
          return command({
              method: 'setAutoFeedMode',
              methodId: 'ppAr4CZ5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAutoFeedModeOff(params) {
          return command({
              method: 'setAutoFeedModeOff',
              methodId: 'Umavv7MR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAutoFeedSwitch(params) {
          return command({
              method: 'setAutoFeedSwitch',
              methodId: 'pUPQDAwm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFeedAmount(params) {
          return command({
              method: 'setFeedAmount',
              methodId: 'pGox3dcw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIndicatorLightSwitch(params) {
          return command({
              method: 'setIndicatorLightSwitch',
              methodId: 'p1vZLivU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLackFoodRemindSwitch(params) {
          return command({
              method: 'setLackFoodRemindSwitch',
              methodId: 'pDrhrHfC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLackFoodRemindValue(params) {
          return command({
              method: 'setLackFoodRemindValue',
              methodId: 'pgh0UvpA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setManualFeedSwitch(params) {
          return command({
              method: 'setManualFeedSwitch',
              methodId: 'pZgubr0P',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3eUxl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class PetFoodStorageBin {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010090003';
      }

      get categoryName() {
          return '\u5ba0\u7269\u50a8\u7cae\u6876';
      }

      getDryingSwitch(params) {
          return command({
              method: 'getDryingSwitch',
              methodId: 'p1vZLiRd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSterilizeSwitch(params) {
          return command({
              method: 'getSterilizeSwitch',
              methodId: 'pZgubrXA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGox3ynr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDryingSwitch(params) {
          return command({
              method: 'setDryingSwitch',
              methodId: 'pUPQDAyC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSterilizeSwitch(params) {
          return command({
              method: 'setSterilizeSwitch',
              methodId: 'peH3eUsw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAr4CJU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartPetWaterDispenser {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010090004';
      }

      get categoryName() {
          return '\u5ba0\u7269\u996e\u6c34\u673a';
      }

      getCartridgeRemainingDay(params) {
          return command({
              method: 'getCartridgeRemainingDay',
              methodId: 'p1vZLi9L',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getResidualWaterVolume(params) {
          return command({
              method: 'getResidualWaterVolume',
              methodId: 'pgh0UviV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getResidualWaterVolumePercentage(params) {
          return command({
              method: 'getResidualWaterVolumePercentage',
              methodId: 'phEcQNt3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getShortageAlarm(params) {
          return command({
              method: 'getShortageAlarm',
              methodId: 'pdNCu14x',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGox3ymZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkMode(params) {
          return command({
              method: 'getWorkMode',
              methodId: 'pDrhrHoS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getYield(params) {
          return command({
              method: 'getYield',
              methodId: 'ptRSgTBG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCartridgeToDefault(params) {
          return command({
              method: 'setCartridgeToDefault',
              methodId: 'pZgubrrd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3eUeC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWorkMode(params) {
          return command({
              method: 'setWorkMode',
              methodId: 'ppAr4CDA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setYield(params) {
          return command({
              method: 'setYield',
              methodId: 'pUPQDA3r',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartLitterBox {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010090005';
      }

      get categoryName() {
          return '\u667a\u80fd\u732b\u7802\u673a';
      }

      getAutoCleanSwitch(params) {
          return command({
              method: 'getAutoCleanSwitch',
              methodId: 'pgh0UvJG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDelayCleanTime(params) {
          return command({
              method: 'getDelayCleanTime',
              methodId: 'pdNCu1nq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDeodorizationSwitch(params) {
          return command({
              method: 'getDeodorizationSwitch',
              methodId: 'pBTmAI0W',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLitterBoxFullReminder(params) {
          return command({
              method: 'getLitterBoxFullReminder',
              methodId: 'pkpD2Rx1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getReplaceCatLitterReminder(params) {
          return command({
              method: 'getReplaceCatLitterReminder',
              methodId: 'p0crZzwR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getStatus(params) {
          return command({
              method: 'getStatus',
              methodId: 'pz93VWZo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ptRSgTXb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getToiletRecord(params) {
          return command({
              method: 'getToiletRecord',
              methodId: 'p3deYoRk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getUltravioletSwitch(params) {
          return command({
              method: 'getUltravioletSwitch',
              methodId: 'phEcQNyx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAutoCleanSwitch(params) {
          return command({
              method: 'setAutoCleanSwitch',
              methodId: 'peH3eUlr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDelayCleanTime(params) {
          return command({
              method: 'setDelayCleanTime',
              methodId: 'pUPQDAkZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDeodorizationSwitch(params) {
          return command({
              method: 'setDeodorizationSwitch',
              methodId: 'p1vZLi6V',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLitterBoxFullReminder(params) {
          return command({
              method: 'setLitterBoxFullReminder',
              methodId: 'pZgubrVL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setReplaceCatLitterReminder(params) {
          return command({
              method: 'setReplaceCatLitterReminder',
              methodId: 'pGox3yAS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pDrhrHs3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setUltravioletSwitch(params) {
          return command({
              method: 'setUltravioletSwitch',
              methodId: 'ppAr4CId',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class PetOdorRemover {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010090006';
      }

      get categoryName() {
          return '\u5ba0\u7269\u51c0\u5473\u5668';
      }

      getGear(params) {
          return command({
              method: 'getGear',
              methodId: 'pDrhrHex',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pZgubrNV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGox3yO3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'p1vZLi7G',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGear(params) {
          return command({
              method: 'setGear',
              methodId: 'pUPQDAzS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'peH3eUUZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAr4CKL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class PetDryer {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010090007';
      }

      get categoryName() {
          return '\u5ba0\u7269\u70d8\u5e72\u7bb1';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pDrhrHlq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSpeed(params) {
          return command({
              method: 'getSpeed',
              methodId: 'p1vZLifb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGox3yvx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemperature(params) {
          return command({
              method: 'getTemperature',
              methodId: 'pZgubrcG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSpeed(params) {
          return command({
              method: 'setSpeed',
              methodId: 'pUPQDA03',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAr4ChV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTemperature(params) {
          return command({
              method: 'setTemperature',
              methodId: 'peH3eUZS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class PetTeaser {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010090008';
      }

      get categoryName() {
          return '\u9017\u5ba0\u5668';
      }

      getDirection(params) {
          return command({
              method: 'getDirection',
              methodId: 'p1vZLiLk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getExerciseTime(params) {
          return command({
              method: 'getExerciseTime',
              methodId: 'pGox3ybq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLightSwitch(params) {
          return command({
              method: 'getLightSwitch',
              methodId: 'phEcQNzR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSoundSwitch(params) {
          return command({
              method: 'getSoundSwitch',
              methodId: 'pDrhrHU1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pgh0UvKo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDirection(params) {
          return command({
              method: 'setDirection',
              methodId: 'peH3eUi3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLightSwitch(params) {
          return command({
              method: 'setLightSwitch',
              methodId: 'pZgubj4b',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSoundSwitch(params) {
          return command({
              method: 'setSoundSwitch',
              methodId: 'ppAr4CtG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQDABx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class PetTennisBallLauncher {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010090009';
      }

      get categoryName() {
          return '\u5ba0\u7269\u7f51\u7403\u53d1\u5c04\u5668';
      }

      getEjectionNumber(params) {
          return command({
              method: 'getEjectionNumber',
              methodId: 'p1vZLixo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getEjectionSwitch(params) {
          return command({
              method: 'getEjectionSwitch',
              methodId: 'pGox3yR1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pZgubjnk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setEjectionNumber(params) {
          return command({
              method: 'setEjectionNumber',
              methodId: 'pUPQDAPq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setEjectionSwitch(params) {
          return command({
              method: 'setEjectionSwitch',
              methodId: 'ppAr4Cyb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3eUJx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class PetFinder {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010090010';
      }

      get categoryName() {
          return '\u5bfb\u5ba0\u5668';
      }

      getExerciseTime(params) {
          return command({
              method: 'getExerciseTime',
              methodId: 'pZgubjmo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLightSwitch(params) {
          return command({
              method: 'getLightSwitch',
              methodId: 'p1vZLi2W',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRingSwitch(params) {
          return command({
              method: 'getRingSwitch',
              methodId: 'pGox3y9R',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pDrhrHiz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLightSwitch(params) {
          return command({
              method: 'setLightSwitch',
              methodId: 'ppAr4C3k',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setRingSwitch(params) {
          return command({
              method: 'setRingSwitch',
              methodId: 'peH3eU1q',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQDAr1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class PetHouse {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010090011';
      }

      get categoryName() {
          return '\u5ba0\u7269\u7a9d';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pdNCu1RK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFanLevel(params) {
          return command({
              method: 'getFanLevel',
              methodId: 'phEcQNXn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFanSwitch(params) {
          return command({
              method: 'getFanSwitch',
              methodId: 'pgh0Uvy9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLightSwitch(params) {
          return command({
              method: 'getLightSwitch',
              methodId: 'ptRSgknM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pDrhrHJE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemperature(params) {
          return command({
              method: 'getTemperature',
              methodId: 'p1vZLisI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFanLevel(params) {
          return command({
              method: 'setFanLevel',
              methodId: 'pZgubjaW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFanSwitch(params) {
          return command({
              method: 'setFanSwitch',
              methodId: 'pUPQDAVR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLightSwitch(params) {
          return command({
              method: 'setLightSwitch',
              methodId: 'pGox3y6z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAr4Cko',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTemperature(params) {
          return command({
              method: 'setTemperature',
              methodId: 'peH3eUI1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class PetBackpack {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010090012';
      }

      get categoryName() {
          return '\u5ba0\u7269\u80cc\u5305';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pDrhrHDn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFanLevel(params) {
          return command({
              method: 'getFanLevel',
              methodId: 'p1vZLie9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFanSwitch(params) {
          return command({
              method: 'getFanSwitch',
              methodId: 'pGox3y7E',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pZgubjOI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFanLevel(params) {
          return command({
              method: 'setFanLevel',
              methodId: 'pUPQDANz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFanSwitch(params) {
          return command({
              method: 'setFanSwitch',
              methodId: 'ppAr4CYW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3eUKR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class PetLeash {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010090013';
      }

      get categoryName() {
          return '\u5ba0\u7269\u7275\u5f15\u7ef3';
      }

      getExerciseTime(params) {
          return command({
              method: 'getExerciseTime',
              methodId: 'pGox3yfn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLight(params) {
          return command({
              method: 'getLight',
              methodId: 'pDrhrHIK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLock(params) {
          return command({
              method: 'getLock',
              methodId: 'pZgubjv9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vZLilM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLight(params) {
          return command({
              method: 'setLight',
              methodId: 'pUPQDAcE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLock(params) {
          return command({
              method: 'setLock',
              methodId: 'peH3eUhz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAr4C0I',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartAquarium {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010090014';
      }

      get categoryName() {
          return '\u667a\u80fd\u9c7c\u7f38';
      }

      getAutomaticFeedFrequency(params) {
          return command({
              method: 'getAutomaticFeedFrequency',
              methodId: 'pXZuwe9L',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAutomaticFeedSwitch(params) {
          return command({
              method: 'getAutomaticFeedSwitch',
              methodId: 'pBTmAgmZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentWaterTemperature(params) {
          return command({
              method: 'getCurrentWaterTemperature',
              methodId: 'UmavvC8b',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFeedAmount(params) {
          return command({
              method: 'getFeedAmount',
              methodId: 'pj7256oS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFeedRecord(params) {
          return command({
              method: 'getFeedRecord',
              methodId: 'pNnZMQiV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFeedStatus(params) {
          return command({
              method: 'getFeedStatus',
              methodId: 'pqYwsBt3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLightBrightness(params) {
          return command({
              method: 'getLightBrightness',
              methodId: 'pz93VW3r',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLightColorTemperature(params) {
          return command({
              method: 'getLightColorTemperature',
              methodId: 'p0crZzrd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLightMode(params) {
          return command({
              method: 'getLightMode',
              methodId: 'UCb2TTeI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLightSwitch(params) {
          return command({
              method: 'getLightSwitch',
              methodId: 'pkpD2RDA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getO2(params) {
          return command({
              method: 'getO2',
              methodId: 'U8OTlZzo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPH(params) {
          return command({
              method: 'getPH',
              methodId: 'URPjnLqR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainFood(params) {
          return command({
              method: 'getRemainFood',
              methodId: 'pWG0chBG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p3deYoeC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTDS(params) {
          return command({
              method: 'getTDS',
              methodId: 'UvxDPdK1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemperature(params) {
          return command({
              method: 'getTargetTemperature',
              methodId: 'UnfcJU4x',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWaterPumpGear(params) {
          return command({
              method: 'getWaterPumpGear',
              methodId: 'UODlCrUk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWaterPumpSwitch(params) {
          return command({
              method: 'getWaterPumpSwitch',
              methodId: 'UaMCyALq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAutomaticFeedFrequency(params) {
          return command({
              method: 'setAutomaticFeedFrequency',
              methodId: 'pDrhrHK5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAutomaticFeedSwitch(params) {
          return command({
              method: 'setAutomaticFeedSwitch',
              methodId: 'p1vZLiUl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFeedAmount(params) {
          return command({
              method: 'setFeedAmount',
              methodId: 'pgh0Uvzm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLightBrightness(params) {
          return command({
              method: 'setLightBrightness',
              methodId: 'pUPQDO4n',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLightColorTemperature(params) {
          return command({
              method: 'setLightColorTemperature',
              methodId: 'pZgubjbM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLightMode(params) {
          return command({
              method: 'setLightMode',
              methodId: 'U5s98N7z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLightSwitch(params) {
          return command({
              method: 'setLightSwitch',
              methodId: 'ppAr4CB9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setManualFeed(params) {
          return command({
              method: 'setManualFeed',
              methodId: 'pGox3yLK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3eUtE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemperature(params) {
          return command({
              method: 'setTargetTemperature',
              methodId: 'phEcQNNP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWaterPumpGear(params) {
          return command({
              method: 'setWaterPumpGear',
              methodId: 'pdNCu17U',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWaterPumpSwitch(params) {
          return command({
              method: 'setWaterPumpSwitch',
              methodId: 'ptRSgkOw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartFishFeeder {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010090015';
      }

      get categoryName() {
          return '\u9c7c\u7f38\u5582\u98df\u5668';
      }

      getAutoFeedMode(params) {
          return command({
              method: 'getAutoFeedMode',
              methodId: 'pDrhrHhP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAutoFeedSwitch(params) {
          return command({
              method: 'getAutoFeedSwitch',
              methodId: 'p1vZLiZm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFeedPortion(params) {
          return command({
              method: 'getFeedPortion',
              methodId: 'pgh0Uv0w',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGox3yx5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAutoFeedMode(params) {
          return command({
              method: 'setAutoFeedMode',
              methodId: 'pUPQDOnK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAutoFeedSwitch(params) {
          return command({
              method: 'setAutoFeedSwitch',
              methodId: 'ppAr4CPM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFeedPortion(params) {
          return command({
              method: 'setFeedPortion',
              methodId: 'pZgubjRl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3eUyn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class AquariumHeater {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010090016';
      }

      get categoryName() {
          return '\u9c7c\u7f38\u52a0\u70ed\u68d2';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'p1vZLiiw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pZgubj9m',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTargetTemperature(params) {
          return command({
              method: 'getTargetTemperature',
              methodId: 'pUPQDOm5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pGox3y2P',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAr4Crl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTargetTemperature(params) {
          return command({
              method: 'setTargetTemperature',
              methodId: 'peH3eU3K',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class AquariumWaterPump {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010090017';
      }

      get categoryName() {
          return '\u9c7c\u7f38\u6c34\u6cf5';
      }

      getFlowSpeed(params) {
          return command({
              method: 'getFlowSpeed',
              methodId: 'pZgubj6w',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pGox3ysU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vZLiJC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFlowSpeed(params) {
          return command({
              method: 'setFlowSpeed',
              methodId: 'peH3eUk5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'ppAr4CVm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQDOaP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class PetTracker {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010090018';
      }

      get categoryName() {
          return '\u5ba0\u7269\u5b9a\u4f4d\u5668';
      }

      getGpsPosition(params) {
          return command({
              method: 'getGpsPosition',
              methodId: 'pZgubj7C',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLightSwitch(params) {
          return command({
              method: 'getLightSwitch',
              methodId: 'pDrhrH3d',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRingSwitch(params) {
          return command({
              method: 'getRingSwitch',
              methodId: 'p1vZLi1r',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSignalIntensity(params) {
          return command({
              method: 'getSignalIntensity',
              methodId: 'pGox3yeA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLightSwitch(params) {
          return command({
              method: 'setLightSwitch',
              methodId: 'pUPQDOOU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setOrientation(params) {
          return command({
              method: 'setOrientation',
              methodId: 'peH3eUYP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setRingSwitch(params) {
          return command({
              method: 'setRingSwitch',
              methodId: 'ppAr4CNw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class AquariumThermometer {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010090020';
      }

      get categoryName() {
          return '\u9c7c\u7f38\u6e29\u5ea6\u8ba1';
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'peH3eUBA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class AquariumOxygenGenerator {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010090021';
      }

      get categoryName() {
          return '\u9c7c\u7f38\u5236\u6c27\u673a';
      }

      getDuration(params) {
          return command({
              method: 'getDuration',
              methodId: 'pDrhrH0G',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFlowRate(params) {
          return command({
              method: 'getFlowRate',
              methodId: 'pZgubjxS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRemainTime(params) {
          return command({
              method: 'getRemainTime',
              methodId: 'pGox3yFV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vZLih3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDuration(params) {
          return command({
              method: 'setDuration',
              methodId: 'pUPQDORL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFlowRate(params) {
          return command({
              method: 'setFlowRate',
              methodId: 'peH3eUPd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAr4fnZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class PetBallLauncherFeeder {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010090023';
      }

      get categoryName() {
          return '\u5ba0\u7269\u5f39\u5c04\u5582\u98df\u5668';
      }

      getEjectionNumber(params) {
          return command({
              method: 'getEjectionNumber',
              methodId: 'p1vZLidq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getEjectionSwitch(params) {
          return command({
              method: 'getEjectionSwitch',
              methodId: 'pGox3yJb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pZgubjsx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setEjectionNumber(params) {
          return command({
              method: 'setEjectionNumber',
              methodId: 'pUPQDO6G',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setEjectionSwitch(params) {
          return command({
              method: 'setEjectionSwitch',
              methodId: 'ppAr4fa3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3eUjV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class PlantGrowthMachine {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010090031';
      }

      get categoryName() {
          return '\u690d\u7269\u751f\u957f\u673a';
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'p1vZLijP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentHumidity(params) {
          return command({
              method: 'getCurrentHumidity',
              methodId: 'ptRSgkJA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'phEcQqsC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLightSwitch(params) {
          return command({
              method: 'getLightSwitch',
              methodId: 'pgh0Ub6U',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPumpSwitch(params) {
          return command({
              method: 'getPumpSwitch',
              methodId: 'pGox3ykm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pDrhrxaw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'ppAr4fCK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLightSwitch(params) {
          return command({
              method: 'setLightSwitch',
              methodId: 'pZgubjI5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPumpSwitch(params) {
          return command({
              method: 'setPumpSwitch',
              methodId: 'peH3eFSM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pUPQDOll',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartFlowerPot {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010090032';
      }

      get categoryName() {
          return '\u667a\u80fd\u82b1\u76c6';
      }

      getCurrentHumidity(params) {
          return command({
              method: 'getCurrentHumidity',
              methodId: 'p1vZLiNU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pGox3yYw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPumpSwitch(params) {
          return command({
              method: 'getPumpSwitch',
              methodId: 'pUPQDOUm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pZgubjgP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPumpSwitch(params) {
          return command({
              method: 'setPumpSwitch',
              methodId: 'peH3eFbl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAr4fL5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class PlantDetector {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010090033';
      }

      get categoryName() {
          return '\u690d\u7269\u68c0\u6d4b\u4eea';
      }

      getCurrentHumidity(params) {
          return command({
              method: 'getCurrentHumidity',
              methodId: 'pGox3y0C',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentTemperature(params) {
          return command({
              method: 'getCurrentTemperature',
              methodId: 'pZgubjhU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getIlluminationStrength(params) {
          return command({
              method: 'getIlluminationStrength',
              methodId: 'pUPQDOFw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAr4fHP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3eFRm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class AutomaticWateringMachine {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010090034';
      }

      get categoryName() {
          return '\u81ea\u52a8\u6d47\u6c34\u673a';
      }

      getPumpSwitch(params) {
          return command({
              method: 'getPumpSwitch',
              methodId: 'pUPQDOiC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pZgubjtA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPumpSwitch(params) {
          return command({
              method: 'setPumpSwitch',
              methodId: 'peH3eFuw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAr4f2U',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SterilizingLamp {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010090036';
      }

      get categoryName() {
          return '\u6740\u83cc\u706f';
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'pUPQDO1Z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pZgubj3L',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'peH3eF5r',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppAr4fEd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class LawnMower {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010090037';
      }

      get categoryName() {
          return '\u63a8\u8349\u673a';
      }

      getLevel(params) {
          return command({
              method: 'getLevel',
              methodId: 'pZgubjTV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQDOIS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLevel(params) {
          return command({
              method: 'setLevel',
              methodId: 'ppAr4flL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3eFCZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class PlantGrowthLight {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010090038';
      }

      get categoryName() {
          return '\u690d\u7269\u751f\u957f\u706f';
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'phEcQq11',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColor(params) {
          return command({
              method: 'getColor',
              methodId: 'p1vZLGOb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getColorTemperature(params) {
          return command({
              method: 'getColorTemperature',
              methodId: 'pDrhrx5q',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMode(params) {
          return command({
              method: 'getMode',
              methodId: 'pgh0UbEk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ptRSgk3o',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'pZgubjYG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColor(params) {
          return command({
              method: 'setColor',
              methodId: 'peH3eFLS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setColorTemperature(params) {
          return command({
              method: 'setColorTemperature',
              methodId: 'ppAr4fpV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMode(params) {
          return command({
              method: 'setMode',
              methodId: 'pUPQDOg3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pGox3yNx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class DotMatrixScreen {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010100001';
      }

      get categoryName() {
          return '\u70b9\u9635\u5c4f';
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'p1vZoyCZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getImage(params) {
          return command({
              method: 'getImage',
              methodId: 'pgh0GHIS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGoxzjSd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getText(params) {
          return command({
              method: 'getText',
              methodId: 'pDrhqilL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'pZgu6Aqr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setImage(params) {
          return command({
              method: 'setImage',
              methodId: 'pUPQhC0A',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3FwFU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setText(params) {
          return command({
              method: 'setText',
              methodId: 'ppAraUhC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartSpeaker {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010100002';
      }

      get categoryName() {
          return '\u667a\u80fd\u97f3\u7bb1';
      }

      getAudioSource(params) {
          return command({
              method: 'getAudioSource',
              methodId: 'U2eMJ23d',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAutoTurning(params) {
          return command({
              method: 'getAutoTurning',
              methodId: 'UgC9Thbq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getBacklightBrightness(params) {
          return command({
              method: 'getBacklightBrightness',
              methodId: 'UZ6IlEi3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getBass(params) {
          return command({
              method: 'getBass',
              methodId: 'UUUlPI2V',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getBassVolume(params) {
          return command({
              method: 'getBassVolume',
              methodId: 'UJTjInBx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getBluetooth(params) {
          return command({
              method: 'getBluetooth',
              methodId: 'UfjisTeA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getClock(params) {
          return command({
              method: 'getClock',
              methodId: 'UkaWKtNW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLoop(params) {
          return command({
              method: 'getLoop',
              methodId: 'U3LBmXzR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getManualTurning(params) {
          return command({
              method: 'getManualTurning',
              methodId: 'UDia8B4b',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMicReverberation(params) {
          return command({
              method: 'getMicReverberation',
              methodId: 'UEqvdWmL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMicSwitch(params) {
          return command({
              method: 'getMicSwitch',
              methodId: 'UHwwcJ1r',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMicVolume(params) {
          return command({
              method: 'getMicVolume',
              methodId: 'UsRWv8rZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMute(params) {
          return command({
              method: 'getMute',
              methodId: 'UlyfCz9S',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getNotDisturb(params) {
          return command({
              method: 'getNotDisturb',
              methodId: 'UdJtFaKo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPlayControl(params) {
          return command({
              method: 'getPlayControl',
              methodId: 'U5s95vOU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPlayMode(params) {
          return command({
              method: 'getPlayMode',
              methodId: 'UCb20N7C',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRandomBroadcast(params) {
          return command({
              method: 'getRandomBroadcast',
              methodId: 'Uwzij7U1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getShuffle(params) {
          return command({
              method: 'getShuffle',
              methodId: 'UhQoHpLk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'URPjAZYP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTrebleVolume(params) {
          return command({
              method: 'getTrebleVolume',
              methodId: 'UiWkn9tG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getVolume(params) {
          return command({
              method: 'getVolume',
              methodId: 'U9KmwLNw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAudioSource(params) {
          return command({
              method: 'setAudioSource',
              methodId: 'phEcSvYG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAutoTurning(params) {
          return command({
              method: 'setAutoTurning',
              methodId: 'pqYwUQiE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBacklightBrightness(params) {
          return command({
              method: 'setBacklightBrightness',
              methodId: 'pBTmbzrR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBass(params) {
          return command({
              method: 'setBass',
              methodId: 'pkpDeoEk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBassVolume(params) {
          return command({
              method: 'setBassVolume',
              methodId: 'pj72Leuz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBluetooth(params) {
          return command({
              method: 'setBluetooth',
              methodId: 'pDrhqipV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCancelClock(params) {
          return command({
              method: 'setCancelClock',
              methodId: 'UvxDVrU5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setClock(params) {
          return command({
              method: 'setClock',
              methodId: 'UODl2ALl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setControlCommand(params) {
          return command({
              method: 'setControlCommand',
              methodId: 'FQtGEYGm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFastForward(params) {
          return command({
              method: 'setFastForward',
              methodId: 'pz9T4R11',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFastReverse(params) {
          return command({
              method: 'setFastReverse',
              methodId: 'p0cr1W3o',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLoop(params) {
          return command({
              method: 'setLoop',
              methodId: 'UaMCYCbK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setManualTurning(params) {
          return command({
              method: 'setManualTurning',
              methodId: 'pNnZr62I',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMicReverberation(params) {
          return command({
              method: 'setMicReverberation',
              methodId: 'pdNC7kOb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMicSwitch(params) {
          return command({
              method: 'setMicSwitch',
              methodId: 'pgh0GHg3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMicVolume(params) {
          return command({
              method: 'setMicVolume',
              methodId: 'ptRStNNx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMute(params) {
          return command({
              method: 'setMute',
              methodId: 'p3deB15q',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setNext(params) {
          return command({
              method: 'setNext',
              methodId: 'pGoxzjbL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setNotDisturb(params) {
          return command({
              method: 'setNotDisturb',
              methodId: 'U8OTZdKm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPlayControl(params) {
          return command({
              method: 'setPlayControl',
              methodId: 'pUPQhCMd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPlayMode(params) {
          return command({
              method: 'setPlayMode',
              methodId: 'p1vZoyLS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPlaySong(params) {
          return command({
              method: 'setPlaySong',
              methodId: 'F4VoMco5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setPrev(params) {
          return command({
              method: 'setPrev',
              methodId: 'pZgu6AWZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setRandomBroadcast(params) {
          return command({
              method: 'setRandomBroadcast',
              methodId: 'UnfcghBn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setShuffle(params) {
          return command({
              method: 'setShuffle',
              methodId: 'pWGMQBt9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3FwiA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setText(params) {
          return command({
              method: 'setText',
              methodId: 'UmavupWM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTrebleVolume(params) {
          return command({
              method: 'setTrebleVolume',
              methodId: 'pXZu3gQW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setVolume(params) {
          return command({
              method: 'setVolume',
              methodId: 'ppAraUwr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class Projector {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010100003';
      }

      get categoryName() {
          return '\u667a\u80fd\u6295\u5f71\u4eea';
      }

      getAudioSource(params) {
          return command({
              method: 'getAudioSource',
              methodId: 'p3deB1C1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'pgh0GHhx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRefreshRate(params) {
          return command({
              method: 'getRefreshRate',
              methodId: 'ptRStNqq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getResolution(params) {
          return command({
              method: 'getResolution',
              methodId: 'phEcSv0b',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pDrhqiFG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getVideoSource(params) {
          return command({
              method: 'getVideoSource',
              methodId: 'pdNC7kSk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAudioSource(params) {
          return command({
              method: 'setAudioSource',
              methodId: 'p1vZoyH3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'ppAraUdZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setRefreshRate(params) {
          return command({
              method: 'setRefreshRate',
              methodId: 'pZgu6OnS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setResolution(params) {
          return command({
              method: 'setResolution',
              methodId: 'pUPQhCPL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3FwGd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setVideoSource(params) {
          return command({
              method: 'setVideoSource',
              methodId: 'pGoxzj8V',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartPictureFrame {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010100005';
      }

      get categoryName() {
          return '\u667a\u80fd\u76f8\u6846';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppAraUT3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3FwDV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class Microphone {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010100006';
      }

      get categoryName() {
          return '\u9ea6\u514b\u98ce';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pUPQhCNb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getVolume(params) {
          return command({
              method: 'getVolume',
              methodId: 'pZgu6OAq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3FwgG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setVolume(params) {
          return command({
              method: 'setVolume',
              methodId: 'ppAraUYx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartScreen {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010100008';
      }

      get categoryName() {
          return '\u667a\u6167\u5c4f';
      }

      getAppCarouselTime(params) {
          return command({
              method: 'getAppCarouselTime',
              methodId: 'ptRStqOn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAppDownloadProgress(params) {
          return command({
              method: 'getAppDownloadProgress',
              methodId: 'p1vZoypz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'pqYwUQtA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getConnectedWifi(params) {
          return command({
              method: 'getConnectedWifi',
              methodId: 'UaMCYCLL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentBattery(params) {
          return command({
              method: 'getCurrentBattery',
              methodId: 'UODl2AUS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFloatBallOnOff(params) {
          return command({
              method: 'getFloatBallOnOff',
              methodId: 'p3deB1EK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getInstallAppList(params) {
          return command({
              method: 'getInstallAppList',
              methodId: 'pGoxzjfW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getMultiWindow(params) {
          return command({
              method: 'getMultiWindow',
              methodId: 'UCb20NEq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOnOff(params) {
          return command({
              method: 'getOnOff',
              methodId: 'pz9T4R35',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getScreenOnOff(params) {
          return command({
              method: 'getScreenOnOff',
              methodId: 'pBTmb0QP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getVolume(params) {
          return command({
              method: 'getVolume',
              methodId: 'pj72Le2U',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWifiList(params) {
          return command({
              method: 'getWifiList',
              methodId: 'UnfcghWd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAppCarouselTime(params) {
          return command({
              method: 'setAppCarouselTime',
              methodId: 'phEcSvN9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAppInstall(params) {
          return command({
              method: 'setAppInstall',
              methodId: 'peH3Fwwk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAppMessage(params) {
          return command({
              method: 'setAppMessage',
              methodId: 'U8OTZdY3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAppStart(params) {
          return command({
              method: 'setAppStart',
              methodId: 'pUPQhCWo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAppStop(params) {
          return command({
              method: 'setAppStop',
              methodId: 'pZgu6ObR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAppUnInstall(params) {
          return command({
              method: 'setAppUnInstall',
              methodId: 'ppAraUM1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'pNnZr6iC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDismiss(params) {
          return command({
              method: 'setDismiss',
              methodId: 'U9KmwHOx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFloatBallOnOff(params) {
          return command({
              method: 'setFloatBallOnOff',
              methodId: 'pdNC7k5M',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setHome(params) {
          return command({
              method: 'setHome',
              methodId: 'pDrhqigI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setMultiWindow(params) {
          return command({
              method: 'setMultiWindow',
              methodId: 'U5s95v7b',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setNetWorkMode(params) {
          return command({
              method: 'setNetWorkMode',
              methodId: 'UvxDVrgV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setNextRunningApp(params) {
          return command({
              method: 'setNextRunningApp',
              methodId: 'pgh0GHYE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setOnOff(params) {
          return command({
              method: 'setOnOff',
              methodId: 'pkpDeo1l',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setReset(params) {
          return command({
              method: 'setReset',
              methodId: 'pWGMQBMr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setScreenOnOff(params) {
          return command({
              method: 'setScreenOnOff',
              methodId: 'p0cr1Wrm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setShow(params) {
          return command({
              method: 'setShow',
              methodId: 'URPjAZNG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setVolume(params) {
          return command({
              method: 'setVolume',
              methodId: 'pXZu3guw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWifi(params) {
          return command({
              method: 'setWifi',
              methodId: 'UmavuUbZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
  // note:特殊的寄居蟹的内容实现input不能和之前的一样，所以过滤一下这个设备，
  // 可以做一个过滤器，将这个JeejioHub过滤掉。
   */

  class JeejioHub {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010100011';
      }

      get categoryName() {
          return '\u7626\u897f\u6e56\u5f00\u53d1\u677f';
      }

      getDevMessage(params) {
          return command({
              method: 'getDevMessage',
              methodId: '',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setClear(params) {
          return command({
              method: 'setDevMessage',
              methodId: '',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDevMessageImage(params) {
          return command({
              method: 'setDevMessage',
              methodId: '',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDevMessageText(params) {
          return command({
              method: 'setDevMessage',
              methodId: '',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
      // 新增灯的api：控制开关
      setDevMessage(params) {
          return command({
              method: 'setDevMessage',
              methodId: '',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

  }

  /**
   * 自动生成！请勿修改！
   */

  class ElectronicSignage {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010110004';
      }

      get categoryName() {
          return '\u7535\u5b50\u6807\u724c';
      }

      getBrightness(params) {
          return command({
              method: 'getBrightness',
              methodId: 'pgh0Ii0W',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getImage(params) {
          return command({
              method: 'getImage',
              methodId: 'pDrwnywR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGoxXOx1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getText(params) {
          return command({
              method: 'getText',
              methodId: 'p1vZljZo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setBrightness(params) {
          return command({
              method: 'setBrightness',
              methodId: 'pZguffRk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setImage(params) {
          return command({
              method: 'setImage',
              methodId: 'pUPQyFnq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3JPyx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setText(params) {
          return command({
              method: 'setText',
              methodId: 'ppArvwXb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ThreeDimensionalPrinter {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010110006';
      }

      get categoryName() {
          return '\u0033\u0044\u6253\u5370\u673a';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppArvwVo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3JPk1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class Printer {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010110008';
      }

      get categoryName() {
          return '\u6253\u5370\u673a';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppArvwcI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3JP0z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class AdjustableDesk {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010110009';
      }

      get categoryName() {
          return '\u5347\u964d\u684c';
      }

      getHeight(params) {
          return command({
              method: 'getHeight',
              methodId: 'pZguffLM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getStatus(params) {
          return command({
              method: 'getStatus',
              methodId: 'pUPQyF8n',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setControl(params) {
          return command({
              method: 'setControl',
              methodId: 'peH3JPBE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setHeight(params) {
          return command({
              method: 'setHeight',
              methodId: 'ppArvt49',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class PaperShredder {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010110010';
      }

      get categoryName() {
          return '\u788e\u7eb8\u673a';
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppArvtnM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3JPXn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class AssetTracker {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010110013';
      }

      get categoryName() {
          return '\u8d44\u4ea7\u5b9a\u4f4d\u5668';
      }

      getGpsPosition(params) {
          return command({
              method: 'getGpsPosition',
              methodId: 'pZguffeC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLightSwitch(params) {
          return command({
              method: 'getLightSwitch',
              methodId: 'pDrwnyrd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRingSwitch(params) {
          return command({
              method: 'getRingSwitch',
              methodId: 'p1vZlj3r',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSignalIntensity(params) {
          return command({
              method: 'getSignalIntensity',
              methodId: 'pGoxXODA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLightSwitch(params) {
          return command({
              method: 'setLightSwitch',
              methodId: 'pUPQyF7U',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setOrientation(params) {
          return command({
              method: 'setOrientation',
              methodId: 'peH3JPNP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setRingSwitch(params) {
          return command({
              method: 'setRingSwitch',
              methodId: 'ppArvtOw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ElectronicStudentCard {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010110014';
      }

      get categoryName() {
          return '\u7535\u5b50\u5b66\u751f\u5361';
      }

      getActualSteps(params) {
          return command({
              method: 'getActualSteps',
              methodId: 'pDrwnyVL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGpsPosition(params) {
          return command({
              method: 'getGpsPosition',
              methodId: 'pZgufflr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLightSwitch(params) {
          return command({
              method: 'getLightSwitch',
              methodId: 'pgh0IGAS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRingSwitch(params) {
          return command({
              method: 'getRingSwitch',
              methodId: 'p1vZljkZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSignalIntensity(params) {
          return command({
              method: 'getSignalIntensity',
              methodId: 'pGoxXOId',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLightSwitch(params) {
          return command({
              method: 'setLightSwitch',
              methodId: 'pUPQyFfA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setOrientation(params) {
          return command({
              method: 'setOrientation',
              methodId: 'peH3JPcU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setRingSwitch(params) {
          return command({
              method: 'setRingSwitch',
              methodId: 'ppArvtvC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class FingerprintReader {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010120001';
      }

      get categoryName() {
          return '\u6307\u7eb9\u8bc6\u522b\u5668';
      }

      getDeleteFingerprint(params) {
          return command({
              method: 'getDeleteFingerprint',
              methodId: 'pdNCEb2I',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFingerInputTimes(params) {
          return command({
              method: 'getFingerInputTimes',
              methodId: 'phEc5GQW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFingerprintInputValue(params) {
          return command({
              method: 'getFingerprintInputValue',
              methodId: 'pgh0wyrR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getFingerprintVerification(params) {
          return command({
              method: 'getFingerprintVerification',
              methodId: 'ptRSMxuz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1vZiO11',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkMode(params) {
          return command({
              method: 'getWorkMode',
              methodId: 'pDrwAj3o',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDeleteFingerprint(params) {
          return command({
              method: 'setDeleteFingerprint',
              methodId: 'pGoxNfEk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFingerInputTimes(params) {
          return command({
              method: 'setFingerInputTimes',
              methodId: 'pZgu2F5q',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setFingerprintInputValue(params) {
          return command({
              method: 'setFingerprintInputValue',
              methodId: 'pUPQYtOb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3KmYG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setWorkMode(params) {
          return command({
              method: 'setWorkMode',
              methodId: 'ppAruPNx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class InfraredEmitter {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010120003';
      }

      get categoryName() {
          return '\u7ea2\u5916\u53d1\u5c04\u5668';
      }

      getChanneList(params) {
          return command({
              method: 'getChanneList',
              methodId: 'ptRSMx7n',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDirective(params) {
          return command({
              method: 'getDirective',
              methodId: 'phEc5GO9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDirectiveList(params) {
          return command({
              method: 'getDirectiveList',
              methodId: 'pgh0wyNE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getIndicatorSwitch(params) {
          return command({
              method: 'getIndicatorSwitch',
              methodId: 'pDrwAjYI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pdNCEbEM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDeleteDirective(params) {
          return command({
              method: 'setDeleteDirective',
              methodId: 'pZgu2FLR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDirective(params) {
          return command({
              method: 'setDirective',
              methodId: 'ppAruPW1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIndicatorSwitch(params) {
          return command({
              method: 'setIndicatorSwitch',
              methodId: 'peH3KmMk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLearnDirective(params) {
          return command({
              method: 'setLearnDirective',
              methodId: 'pUPQYtbo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSendDirective(params) {
          return command({
              method: 'setSendDirective',
              methodId: 'p1vZiOgz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pGoxNfpW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class Valve {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '010120004';
      }

      get categoryName() {
          return '\u9600\u95e8';
      }

      getRange(params) {
          return command({
              method: 'getRange',
              methodId: 'pUPQYt8W',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pZgu2FHz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setRange(params) {
          return command({
              method: 'setRange',
              methodId: 'ppAruXnR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'peH3KmPo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class CO2Sensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '020010003';
      }

      get categoryName() {
          return '\u4e8c\u6c27\u5316\u78b3\u4f20\u611f\u5668';
      }

      getAlarmStatus(params) {
          return command({
              method: 'getAlarmStatus',
              methodId: 'pUXSye6C',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAlarmThreshold(params) {
          return command({
              method: 'getAlarmThreshold',
              methodId: 'ppOcvgaU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getConcentrationValue(params) {
          return command({
              method: 'getConcentrationValue',
              methodId: 'pZKCf6sA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAlarmThreshold(params) {
          return command({
              method: 'setAlarmThreshold',
              methodId: 'pex0Jzjw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SoilSensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '020010004';
      }

      get categoryName() {
          return '\u571f\u58e4\u4f20\u611f\u5668';
      }

      getHumidity(params) {
          return command({
              method: 'getHumidity',
              methodId: 'pGseXQ1Z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getNitrogen(params) {
          return command({
              method: 'getNitrogen',
              methodId: 'pex0JzNC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPh(params) {
          return command({
              method: 'getPh',
              methodId: 'pZKCf6Ed',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPhosphorus(params) {
          return command({
              method: 'getPhosphorus',
              methodId: 'ppOcvgOA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPotassium(params) {
          return command({
              method: 'getPotassium',
              methodId: 'pUXSye5r',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemperature(params) {
          return command({
              method: 'getTemperature',
              methodId: 'p1bDlB3L',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class Barometer {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '020010006';
      }

      get categoryName() {
          return '\u6c14\u538b\u8ba1';
      }

      getAlarmReminderSwitch(params) {
          return command({
              method: 'getAlarmReminderSwitch',
              methodId: 'pgwrIUOb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAlarmSwitch(params) {
          return command({
              method: 'getAlarmSwitch',
              methodId: 'pGseXQg3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAlarmType(params) {
          return command({
              method: 'getAlarmType',
              methodId: 'ptuukAEk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAlarmValue(params) {
          return command({
              method: 'getAlarmValue',
              methodId: 'pDjTnhNx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getPressure(params) {
          return command({
              method: 'getPressure',
              methodId: 'p1bDlBYG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pZKCf6pV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAlarmRange(params) {
          return command({
              method: 'setAlarmRange',
              methodId: 'pUXSyeLS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAlarmSwitch(params) {
          return command({
              method: 'setAlarmSwitch',
              methodId: 'ppOcvgbL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pex0JzWZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class Atomizer {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '030010003';
      }

      get categoryName() {
          return '\u96fe\u5316\u5668';
      }

      getIntervalSprayDuration(params) {
          return command({
              method: 'getIntervalSprayDuration',
              methodId: 'phpvP8Po',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getIntervalSprayStopTime(params) {
          return command({
              method: 'getIntervalSprayStopTime',
              methodId: 'pt9feWnR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSprayMode(params) {
          return command({
              method: 'getSprayMode',
              methodId: 'pDVMdJGk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSpraySwitch(params) {
          return command({
              method: 'getSpraySwitch',
              methodId: 'pgtWC2d1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTimerSwitch(params) {
          return command({
              method: 'getTimerSwitch',
              methodId: 'pdcp4z8W',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTiming(params) {
          return command({
              method: 'getTiming',
              methodId: 'p33IDIHz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIntervalSprayDuration(params) {
          return command({
              method: 'setIntervalSprayDuration',
              methodId: 'pUr9sLjG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setIntervalSprayStopTime(params) {
          return command({
              method: 'setIntervalSprayStopTime',
              methodId: 'pZh2cvax',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSprayMode(params) {
          return command({
              method: 'setSprayMode',
              methodId: 'pe2j6dDV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSpraySwitch(params) {
          return command({
              method: 'setSpraySwitch',
              methodId: 'ppvm0ZT3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTimerSwitch(params) {
          return command({
              method: 'setTimerSwitch',
              methodId: 'pGEiGN6b',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setTiming(params) {
          return command({
              method: 'setTiming',
              methodId: 'p18tSToq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class IndustrialHumidifier {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '030010005';
      }

      get categoryName() {
          return '\u5de5\u4e1a\u52a0\u6e7f\u5668';
      }

      getCurrentHumidity(params) {
          return command({
              method: 'getCurrentHumidity',
              methodId: 'pDVMdJDW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentPower(params) {
          return command({
              method: 'getCurrentPower',
              methodId: 'pgtWC2Tz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getHumidity(params) {
          return command({
              method: 'getHumidity',
              methodId: 'pZh2cvS1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSpeed(params) {
          return command({
              method: 'getSpeed',
              methodId: 'p18tSTlR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pGEiGNCo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setHumidity(params) {
          return command({
              method: 'setHumidity',
              methodId: 'pe2j6dhb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSpeed(params) {
          return command({
              method: 'setSpeed',
              methodId: 'pUr9sLqk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppvm0Zzq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class IndustrialCombustibleGasDetector {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '030020001';
      }

      get categoryName() {
          return '\u5de5\u4e1a\u53ef\u71c3\u6c14\u4f53\u63a2\u6d4b\u5668';
      }

      getAlarmDuration(params) {
          return command({
              method: 'getAlarmDuration',
              methodId: 'pMnas9jn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAlarmRingtone(params) {
          return command({
              method: 'getAlarmRingtone',
              methodId: 'pkFk6IDE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAlarmStatus(params) {
          return command({
              method: 'getAlarmStatus',
              methodId: 'pdcpaW7z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAlarmSwitch(params) {
          return command({
              method: 'getAlarmSwitch',
              methodId: 'pz5j0ET9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAlarmVolume(params) {
          return command({
              method: 'getAlarmVolume',
              methodId: 'p33IhzeI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCOAlarmThreshold(params) {
          return command({
              method: 'getCOAlarmThreshold',
              methodId: 'pgtWxJzo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCOValue(params) {
          return command({
              method: 'getCOValue',
              methodId: 'pDVMkTK1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGasAlarmThreshold(params) {
          return command({
              method: 'getGasAlarmThreshold',
              methodId: 'pt9fZROW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGasValue(params) {
          return command({
              method: 'getGasValue',
              methodId: 'phpvV2qR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAlarmDuration(params) {
          return command({
              method: 'setAlarmDuration',
              methodId: 'p18tRNUk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAlarmRingtone(params) {
          return command({
              method: 'setAlarmRingtone',
              methodId: 'pZhoQH8b',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAlarmSwitch(params) {
          return command({
              method: 'setAlarmSwitch',
              methodId: 'pGEigvLq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAlarmVolume(params) {
          return command({
              method: 'setAlarmVolume',
              methodId: 'pUr9pi4x',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCOAlarmThreshold(params) {
          return command({
              method: 'setCOAlarmThreshold',
              methodId: 'pe2jfrt3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGasAlarmThreshold(params) {
          return command({
              method: 'setGasAlarmThreshold',
              methodId: 'ppvmXdBG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class GPS {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '040010001';
      }

      get categoryName() {
          return '\u0067\u0070\u0073';
      }

      getAltitude(params) {
          return command({
              method: 'getAltitude',
              methodId: 'pZwphndo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLatitude(params) {
          return command({
              method: 'getLatitude',
              methodId: 'pUjLa9G1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLongitude(params) {
          return command({
              method: 'getLongitude',
              methodId: 'ppbbFEok',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLongitudeAndLatitude(params) {
          return command({
              method: 'getLongitudeAndLatitude',
              methodId: 'pDNVop8z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getReportFrequency(params) {
          return command({
              method: 'getReportFrequency',
              methodId: 'pGeg9MPR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSignalIntensity(params) {
          return command({
              method: 'getSignalIntensity',
              methodId: 'p1Rkzh4W',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setReportFrequency(params) {
          return command({
              method: 'setReportFrequency',
              methodId: 'peoWjI9q',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class WindSensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '040010002';
      }

      get categoryName() {
          return '\u98ce\u529b\u98ce\u901f\u4f20\u611f\u5668';
      }

      getAlarmStatus(params) {
          return command({
              method: 'getAlarmStatus',
              methodId: 'pDNVopuE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAlarmSwitch(params) {
          return command({
              method: 'getAlarmSwitch',
              methodId: 'pGeg9MXz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getAlarmThreshold(params) {
          return command({
              method: 'getAlarmThreshold',
              methodId: 'p1RkzhQI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWindDirection(params) {
          return command({
              method: 'getWindDirection',
              methodId: 'pZwphnyW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWindSpeed(params) {
          return command({
              method: 'getWindSpeed',
              methodId: 'pUjLa91R',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAlarmSwitch(params) {
          return command({
              method: 'setAlarmSwitch',
              methodId: 'peoWjI51',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setAlarmThreshold(params) {
          return command({
              method: 'setAlarmThreshold',
              methodId: 'ppbbFEEo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class RoadConditionSensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '040010003';
      }

      get categoryName() {
          return '\u8def\u51b5\u4f20\u611f\u5668';
      }

      getRoadHumidity(params) {
          return command({
              method: 'getRoadHumidity',
              methodId: 'pUjLa9Dz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRoadSlope(params) {
          return command({
              method: 'getRoadSlope',
              methodId: 'pZwphnTI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRoadSurfaceStatus(params) {
          return command({
              method: 'getRoadSurfaceStatus',
              methodId: 'peoWjICR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRoadTemperature(params) {
          return command({
              method: 'getRoadTemperature',
              methodId: 'ppbbFEeW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getVehicleFlow(params) {
          return command({
              method: 'getVehicleFlow',
              methodId: 'pGeg9MjE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ChargingStation {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '040040001';
      }

      get categoryName() {
          return '\u6c7d\u8f66\u5145\u7535\u6869';
      }

      getCurrentElectricity(params) {
          return command({
              method: 'getCurrentElectricity',
              methodId: 'pGegeefC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentPower(params) {
          return command({
              method: 'getCurrentPower',
              methodId: 'pZwpBgvU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentVoltage(params) {
          return command({
              method: 'getCurrentVoltage',
              methodId: 'p1RY46pA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOnceEnergy(params) {
          return command({
              method: 'getOnceEnergy',
              methodId: 'pUjL7zcw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppbbtW0P',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pDNVDQIr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pes4SRwm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ParkingLock {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '040040002';
      }

      get categoryName() {
          return '\u5730\u9501';
      }

      getParkingStatus(params) {
          return command({
              method: 'getParkingStatus',
              methodId: 'pUjL704C',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppbbtWBU',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pes4SRtw',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ElectricBicycle {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '040040003';
      }

      get categoryName() {
          return '\u7535\u52a8\u81ea\u884c\u8f66';
      }

      getEnduranceMileage(params) {
          return command({
              method: 'getEnduranceMileage',
              methodId: 'pZwpBgRd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGpsPosition(params) {
          return command({
              method: 'getGpsPosition',
              methodId: 'pUjL70nr',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOnceMileage(params) {
          return command({
              method: 'getOnceMileage',
              methodId: 'pDNVDQwS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOnceRidetime(params) {
          return command({
              method: 'getOnceRidetime',
              methodId: 'p1RY46ZL',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSignalIntensity(params) {
          return command({
              method: 'getSignalIntensity',
              methodId: 'pGegeexZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pgyAbB0V',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSearch(params) {
          return command({
              method: 'setSearch',
              methodId: 'pes4SRyC',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppbbtWXA',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class VehicleVelocimeter {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '040040004';
      }

      get categoryName() {
          return '\u8f66\u8f7d\u6d4b\u901f\u4eea';
      }

      getSpeed(params) {
          return command({
              method: 'getSpeed',
              methodId: 'pGegeeoS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSpeedingAlarm(params) {
          return command({
              method: 'getSpeedingAlarm',
              methodId: 'p1RY46iV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pZwpBg9L',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getThreshold(params) {
          return command({
              method: 'getThreshold',
              methodId: 'pUjL70mZ',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppbbtWrd',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setThreshold(params) {
          return command({
              method: 'setThreshold',
              methodId: 'pes4SR3r',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class TirePressureMonitor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '040040006';
      }

      get categoryName() {
          return '\u80ce\u538b\u76d1\u6d4b\u4eea';
      }

      getAlarmStatus(params) {
          return command({
              method: 'getAlarmStatus',
              methodId: 'pGegeeex',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'p1RY46Db',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getThreshold(params) {
          return command({
              method: 'getThreshold',
              methodId: 'pUjL70O3',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTirePressure(params) {
          return command({
              method: 'getTirePressure',
              methodId: 'pZwpBg7G',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppbbtWNV',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setThreshold(params) {
          return command({
              method: 'setThreshold',
              methodId: 'pes4SRzS',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ColdChainTransportTracker {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '040040007';
      }

      get categoryName() {
          return '\u51b7\u94fe\u8fd0\u8f93\u5b9a\u4f4d\u5668';
      }

      getGpsPosition(params) {
          return command({
              method: 'getGpsPosition',
              methodId: 'pZwpBgfb',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getLightSwitch(params) {
          return command({
              method: 'getLightSwitch',
              methodId: 'pDNVDQk1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getRingSwitch(params) {
          return command({
              method: 'getRingSwitch',
              methodId: 'p1RY46Ik',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSignalIntensity(params) {
          return command({
              method: 'getSignalIntensity',
              methodId: 'pGegeelq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getTemperature(params) {
          return command({
              method: 'getTemperature',
              methodId: 'pgyAbBVo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setLightSwitch(params) {
          return command({
              method: 'setLightSwitch',
              methodId: 'pUjL70vx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setOrientation(params) {
          return command({
              method: 'setOrientation',
              methodId: 'pes4SR03',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setRingSwitch(params) {
          return command({
              method: 'setRingSwitch',
              methodId: 'ppbbtWcG',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class VehicleTracker {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '040040008';
      }

      get categoryName() {
          return '\u8f66\u8f7d\u5b9a\u4f4d\u5668';
      }

      getGpsPosition(params) {
          return command({
              method: 'getGpsPosition',
              methodId: 'ppbbd44b',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSignalIntensity(params) {
          return command({
              method: 'getSignalIntensity',
              methodId: 'pUjL70bq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setOrientation(params) {
          return command({
              method: 'setOrientation',
              methodId: 'pes4SRBx',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class UltrasonicParkingSensor {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '040040009';
      }

      get categoryName() {
          return '\u8d85\u58f0\u6ce2\u8f66\u4f4d\u68c0\u6d4b\u5668';
      }

      getDistanceDetection(params) {
          return command({
              method: 'getDistanceDetection',
              methodId: 'pDNVDQ0z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDriveinDelay(params) {
          return command({
              method: 'getDriveinDelay',
              methodId: 'pGegeeZR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getDriveoutDelay(params) {
          return command({
              method: 'getDriveoutDelay',
              methodId: 'p1RY46hW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getParkingStatus(params) {
          return command({
              method: 'getParkingStatus',
              methodId: 'pgyAbBcI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getParkingType(params) {
          return command({
              method: 'getParkingType',
              methodId: 'phU63wvE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDistanceDetection(params) {
          return command({
              method: 'setDistanceDetection',
              methodId: 'pUjL70R1',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDriveinDelay(params) {
          return command({
              method: 'setDriveinDelay',
              methodId: 'pes4SRPq',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setDriveoutDelay(params) {
          return command({
              method: 'setDriveoutDelay',
              methodId: 'ppbbd4nk',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setParkingType(params) {
          return command({
              method: 'setParkingType',
              methodId: 'pZwpBgxo',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class SmartElectricVehicle {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '040040011';
      }

      get categoryName() {
          return '\u667a\u80fd\u7535\u52a8\u8f66';
      }

      getEnduranceMileage(params) {
          return command({
              method: 'getEnduranceMileage',
              methodId: 'pZwpBgsI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGpsPosition(params) {
          return command({
              method: 'getGpsPosition',
              methodId: 'pUjL706z',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOnceMileage(params) {
          return command({
              method: 'getOnceMileage',
              methodId: 'pDNVDQXn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOnceTime(params) {
          return command({
              method: 'getOnceTime',
              methodId: 'p1RY46y9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSignalIntensity(params) {
          return command({
              method: 'getSignalIntensity',
              methodId: 'pGegeeJE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'pgyAbPnM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSearch(params) {
          return command({
              method: 'setSearch',
              methodId: 'pes4SRVR',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'ppbbd4aW',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class DCChargingStation {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '040040012';
      }

      get categoryName() {
          return '\u76f4\u6d41\u5145\u7535\u6869';
      }

      getCurrentElectricity(params) {
          return command({
              method: 'getCurrentElectricity',
              methodId: 'pGegeeDn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentPower(params) {
          return command({
              method: 'getCurrentPower',
              methodId: 'pZwpBge9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentVoltage(params) {
          return command({
              method: 'getCurrentVoltage',
              methodId: 'p1RY463M',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOnceEnergy(params) {
          return command({
              method: 'getOnceEnergy',
              methodId: 'pUjL707E',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppbbd4OI',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pDNVDQrK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pes4SRNz',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ACHomeChargingStation {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '040040013';
      }

      get categoryName() {
          return '\u4ea4\u6d41\u5bb6\u7528\u5145\u7535\u6869';
      }

      getCurrentElectricity(params) {
          return command({
              method: 'getCurrentElectricity',
              methodId: 'pGegeeIK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentPower(params) {
          return command({
              method: 'getCurrentPower',
              methodId: 'pZwpBglM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentVoltage(params) {
          return command({
              method: 'getCurrentVoltage',
              methodId: 'p1RY46kl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOnceEnergy(params) {
          return command({
              method: 'getOnceEnergy',
              methodId: 'pUjL70fn',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppbbd4v9',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pDNVDQV5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pes4SRcE',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ElectricBicycleChargingPile {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '040040014';
      }

      get categoryName() {
          return '\u4e8c\u8f6e\u8f66\u5145\u7535\u6869';
      }

      getCurrentElectricity(params) {
          return command({
              method: 'getCurrentElectricity',
              methodId: 'pGegeeK5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentPower(params) {
          return command({
              method: 'getCurrentPower',
              methodId: 'pZwpBgUl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getCurrentVoltage(params) {
          return command({
              method: 'getCurrentVoltage',
              methodId: 'p1RY46zm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getOnceEnergy(params) {
          return command({
              method: 'getOnceEnergy',
              methodId: 'pUjL70LK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getSwitch(params) {
          return command({
              method: 'getSwitch',
              methodId: 'ppbbd4bM',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getWorkStatus(params) {
          return command({
              method: 'getWorkStatus',
              methodId: 'pDNVDQNP',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setSwitch(params) {
          return command({
              method: 'setSwitch',
              methodId: 'pes4Su4n',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  /**
   * 自动生成！请勿修改！
   */

  class ExpressCabinet {
      constructor(opt = {}) {
          const { device, to, ...opts } = opt;

          this.device = device || {};
          this.opts = opts || {};
          this._to = to;
      }

      get categoryCode() {
          return '040040015';
      }

      get categoryName() {
          return '\u5feb\u9012\u67dc';
      }

      getCabinetSwitch(params) {
          return command({
              method: 'getCabinetSwitch',
              methodId: 'pZwpBgZm',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      getGoodsStatus(params) {
          return command({
              method: 'getGoodsStatus',
              methodId: 'pUjL70x5',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setCabinetOpened(params) {
          return command({
              method: 'setCabinetOpened',
              methodId: 'ppbbd4Rl',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }

      setGoodsStatus(params) {
          return command({
              method: 'setGoodsStatus',
              methodId: 'pes4SunK',
              params,
              to: this.to?.[this.i] || this.to,
          });
      }
  }

  var devices = /*#__PURE__*/Object.freeze({
    __proto__: null,
    ACHomeChargingStation: ACHomeChargingStation,
    AbdominalMassager: AbdominalMassager,
    AdjustableDesk: AdjustableDesk,
    AirConditioner: AirConditioner,
    AirConditionerCompanion: AirConditionerCompanion,
    AirConditionerController: AirConditionerController,
    AirConditioningFan: AirConditioningFan,
    AirFryer: AirFryer,
    AirPump: AirPump,
    AirPurifier: AirPurifier,
    AirQualityMonitor: AirQualityMonitor,
    AirSourceHeatPumpHeater: AirSourceHeatPumpHeater,
    AmbientLight: AmbientLight,
    AquariumHeater: AquariumHeater,
    AquariumOxygenGenerator: AquariumOxygenGenerator,
    AquariumThermometer: AquariumThermometer,
    AquariumWaterPump: AquariumWaterPump,
    ArduinoCompatibleDevice: ArduinoCompatibleDevice,
    AromatherapyMachine: AromatherapyMachine,
    AssetTracker: AssetTracker,
    Atomizer: Atomizer,
    AttitudeSensor: AttitudeSensor,
    AutomaticWateringMachine: AutomaticWateringMachine,
    BabyBottleSterilizer: BabyBottleSterilizer,
    BabyCrib: BabyCrib,
    BabyFoodProcessor: BabyFoodProcessor,
    BabyWalker: BabyWalker,
    BadmintonRacket: BadmintonRacket,
    BarcodeScanner: BarcodeScanner,
    Barometer: Barometer,
    BaseboardHeater: BaseboardHeater,
    BathHeater: BathHeater,
    BathroomMirror: BathroomMirror,
    Bathtub: Bathtub,
    BeautyDevice: BeautyDevice,
    BloodGlucoseMeter: BloodGlucoseMeter,
    BloodPressureMonitor: BloodPressureMonitor,
    BreadMaker: BreadMaker,
    BreastPump: BreastPump,
    Button: Button,
    ButtonPanel: ButtonPanel,
    Buzzer: Buzzer,
    CO2Sensor: CO2Sensor,
    CampingLantern: CampingLantern,
    CandleLight: CandleLight,
    CarFridge: CarFridge,
    CeilingFanLamp: CeilingFanLamp,
    CeilingLight: CeilingLight,
    CentralAirConditioning: CentralAirConditioning,
    ChargingStation: ChargingStation,
    ChildTracker: ChildTracker,
    ChildrenRidingVehicle: ChildrenRidingVehicle,
    ClothesDryer: ClothesDryer,
    CoffeeMakers: CoffeeMakers,
    ColdChainTransportTracker: ColdChainTransportTracker,
    ColorSensor: ColorSensor,
    CourtyardGateController: CourtyardGateController,
    CurtainRemoteController: CurtainRemoteController,
    CurtainSwitch: CurtainSwitch,
    DCChargingStation: DCChargingStation,
    Deodorizer: Deodorizer,
    DeskLamp: DeskLamp,
    DesktopFan: DesktopFan,
    DimmerSwitch: DimmerSwitch,
    DimmingSocket: DimmingSocket,
    DimmingandControlSwitch: DimmingandControlSwitch,
    Dishwasher: Dishwasher,
    DisinfectionCabinet: DisinfectionCabinet,
    Display: Display,
    DisplayScreen: DisplayScreen,
    DistanceSensor: DistanceSensor,
    DoorAndWindowSensor: DoorAndWindowSensor,
    DotMatrixScreen: DotMatrixScreen,
    DoubleOpeningCurtain: DoubleOpeningCurtain,
    Downlight: Downlight,
    ELock: ELock,
    EarThermometer: EarThermometer,
    EggCooker: EggCooker,
    ElderlyTracker: ElderlyTracker,
    ElectricBicycle: ElectricBicycle,
    ElectricBicycleChargingPile: ElectricBicycleChargingPile,
    ElectricBlanket: ElectricBlanket,
    ElectricFireplace: ElectricFireplace,
    ElectricGrill: ElectricGrill,
    ElectricHeater: ElectricHeater,
    ElectricHeatingTable: ElectricHeatingTable,
    ElectricKettle: ElectricKettle,
    ElectricScooter: ElectricScooter,
    ElectricShaver: ElectricShaver,
    ElectricToothbrush: ElectricToothbrush,
    ElectricWheelchair: ElectricWheelchair,
    ElectricityMeter: ElectricityMeter,
    ElectronicSignage: ElectronicSignage,
    ElectronicStudentCard: ElectronicStudentCard,
    EmergencyButton: EmergencyButton,
    EnvironmentSensor: EnvironmentSensor,
    ExpressCabinet: ExpressCabinet,
    EyeProtector: EyeProtector,
    FacialCleansingDevice: FacialCleansingDevice,
    FanSwitch: FanSwitch,
    FasciaGun: FasciaGun,
    FetalHeartMonitor: FetalHeartMonitor,
    FingerRobot: FingerRobot,
    FingerprintReader: FingerprintReader,
    FloodSensor: FloodSensor,
    FloorHeating: FloorHeating,
    FloorLamp: FloorLamp,
    FoodDehydrator: FoodDehydrator,
    FoodProbe: FoodProbe,
    FoodWasteDisposer: FoodWasteDisposer,
    ForeheadThermometer: ForeheadThermometer,
    Freezer: Freezer,
    FreshAirUnit: FreshAirUnit,
    FreshAirVentilator: FreshAirVentilator,
    GPS: GPS,
    GameController: GameController,
    GarageDoorController: GarageDoorController,
    GarmentCareMachine: GarmentCareMachine,
    GasStove: GasStove,
    GasWaterHeater: GasWaterHeater,
    GeneralTracker: GeneralTracker,
    GeomagneticSensor: GeomagneticSensor,
    GestureRecognition: GestureRecognition,
    GestureSensorSwitch: GestureSensorSwitch,
    GlassesCleaner: GlassesCleaner,
    GrainMill: GrainMill,
    HVACController: HVACController,
    HairDryer: HairDryer,
    HairRemovalDevice: HairRemovalDevice,
    HandSanitizerDispenser: HandSanitizerDispenser,
    HeadMassager: HeadMassager,
    HealthPot: HealthPot,
    HeartRateMonitor: HeartRateMonitor,
    HeatedCupMat: HeatedCupMat,
    HeatedTableMat: HeatedTableMat,
    Helmet: Helmet,
    HighSpeedBlender: HighSpeedBlender,
    HomeCombustibleGasDetector: HomeCombustibleGasDetector,
    HomeDehumidifier: HomeDehumidifier,
    HomeHumidifier: HomeHumidifier,
    HomeWeightScale: HomeWeightScale,
    HotWaterCirculationPump: HotWaterCirculationPump,
    HulaHoop: HulaHoop,
    HumanBodySensor: HumanBodySensor,
    HumanMotionSensor: HumanMotionSensor,
    HumanThermalSensor: HumanThermalSensor,
    IMUGyroscope: IMUGyroscope,
    IceCreamMaker: IceCreamMaker,
    IceMaker: IceMaker,
    IlluminationSensor: IlluminationSensor,
    InductionCooker: InductionCooker,
    IndustrialCombustibleGasDetector: IndustrialCombustibleGasDetector,
    IndustrialDehumidifier: IndustrialDehumidifier,
    IndustrialHumidifier: IndustrialHumidifier,
    IndustrialandMiningLamp: IndustrialandMiningLamp,
    InfraredEmitter: InfraredEmitter,
    InfraredTemperatureSensor: InfraredTemperatureSensor,
    IngredientCleaner: IngredientCleaner,
    IntegratedStove: IntegratedStove,
    IrisRecognitionDevice: IrisRecognitionDevice,
    JeejioHub: JeejioHub,
    Juicer: Juicer,
    KnifeAndChopsticksSterilizer: KnifeAndChopsticksSterilizer,
    LawnMower: LawnMower,
    LegandFootMassager: LegandFootMassager,
    Light: Light,
    LightBulb: LightBulb,
    LightSensorSwitch: LightSensorSwitch,
    LightString: LightString,
    LightStrip: LightStrip,
    LightTube: LightTube,
    LightingController: LightingController,
    LiquidLevelSensor: LiquidLevelSensor,
    LowPressurePump: LowPressurePump,
    LumbarMassager: LumbarMassager,
    MagicCubeController: MagicCubeController,
    MagneticFieldSensor: MagneticFieldSensor,
    MagneticLight: MagneticLight,
    MatrixLight: MatrixLight,
    MedicalLamp: MedicalLamp,
    Microphone: Microphone,
    MicrowaveOven: MicrowaveOven,
    MilkFrother: MilkFrother,
    MilkMixer: MilkMixer,
    MilkWarmer: MilkWarmer,
    MoppingRobot: MoppingRobot,
    MosquitoRepellentHeater: MosquitoRepellentHeater,
    MotionandStillnessSensor: MotionandStillnessSensor,
    Motor: Motor,
    MoxibustionDevice: MoxibustionDevice,
    MultiButtonSwitch: MultiButtonSwitch,
    MultifunctionalCookingPot: MultifunctionalCookingPot,
    MusicSleepLight: MusicSleepLight,
    NoiseDetector: NoiseDetector,
    NoodleMaker: NoodleMaker,
    NutritionalScale: NutritionalScale,
    OccupancySensor: OccupancySensor,
    OnewayDrawCurtain: OnewayDrawCurtain,
    OralIrrigator: OralIrrigator,
    OutdoorSunUmbrella: OutdoorSunUmbrella,
    Oven: Oven,
    Oximeter: Oximeter,
    OxygenConcentrator: OxygenConcentrator,
    PanelSwitch: PanelSwitch,
    PaperShredder: PaperShredder,
    ParkingLock: ParkingLock,
    ParticleSensor: ParticleSensor,
    PetBackpack: PetBackpack,
    PetBallLauncherFeeder: PetBallLauncherFeeder,
    PetDryer: PetDryer,
    PetFinder: PetFinder,
    PetFoodStorageBin: PetFoodStorageBin,
    PetHouse: PetHouse,
    PetLeash: PetLeash,
    PetOdorRemover: PetOdorRemover,
    PetTeaser: PetTeaser,
    PetTennisBallLauncher: PetTennisBallLauncher,
    PetTracker: PetTracker,
    PhotoelectricSensor: PhotoelectricSensor,
    PhysiotherapyInstrument: PhysiotherapyInstrument,
    Pillow: Pillow,
    PlantDetector: PlantDetector,
    PlantGrowthLight: PlantGrowthLight,
    PlantGrowthMachine: PlantGrowthMachine,
    PortableAirConditioner: PortableAirConditioner,
    PortableFan: PortableFan,
    PowerSocket: PowerSocket,
    PowerTransformer: PowerTransformer,
    PressureCooker: PressureCooker,
    PressureSensor: PressureSensor,
    Printer: Printer,
    Projector: Projector,
    RFID: RFID,
    RainSensor: RainSensor,
    RainfallSensor: RainfallSensor,
    RangeHood: RangeHood,
    Refrigerator: Refrigerator,
    ResistanceBand: ResistanceBand,
    RiceCabinet: RiceCabinet,
    RoadConditionSensor: RoadConditionSensor,
    RobotVacuumCleaner: RobotVacuumCleaner,
    RoboticVacuumandMopCombo: RoboticVacuumandMopCombo,
    RockingChair: RockingChair,
    RollerShutterDoorController: RollerShutterDoorController,
    RotaryEncoder: RotaryEncoder,
    RotaryRemoteControl: RotaryRemoteControl,
    RotarySwitch: RotarySwitch,
    RowingMachine: RowingMachine,
    SafeBox: SafeBox,
    SafetySeat: SafetySeat,
    SceneSwitch: SceneSwitch,
    SelfBalancingScooter: SelfBalancingScooter,
    ShoeCabinet: ShoeCabinet,
    ShoeCabinetSterilizer: ShoeCabinetSterilizer,
    ShoeCareMachine: ShoeCareMachine,
    ShoeWasher: ShoeWasher,
    ShowerColumn: ShowerColumn,
    ShowerEnclosure: ShowerEnclosure,
    SingleButtonSwitch: SingleButtonSwitch,
    SleepButton: SleepButton,
    SleepMonitor: SleepMonitor,
    SlowCooker: SlowCooker,
    SmartAbdominalWheel: SmartAbdominalWheel,
    SmartAntiLossDevice: SmartAntiLossDevice,
    SmartAquarium: SmartAquarium,
    SmartBed: SmartBed,
    SmartBodyFatScale: SmartBodyFatScale,
    SmartBracelet: SmartBracelet,
    SmartCervicalMassageDevice: SmartCervicalMassageDevice,
    SmartChildrenThermosCup: SmartChildrenThermosCup,
    SmartCircuitBreaker: SmartCircuitBreaker,
    SmartClock: SmartClock,
    SmartClothesHanger: SmartClothesHanger,
    SmartCup: SmartCup,
    SmartDimmer: SmartDimmer,
    SmartDoor: SmartDoor,
    SmartDoorLock: SmartDoorLock,
    SmartDumbbell: SmartDumbbell,
    SmartElectricKettle: SmartElectricKettle,
    SmartElectricMeter: SmartElectricMeter,
    SmartElectricVehicle: SmartElectricVehicle,
    SmartExhaustFan: SmartExhaustFan,
    SmartFaucet: SmartFaucet,
    SmartFishFeeder: SmartFishFeeder,
    SmartFlowerPot: SmartFlowerPot,
    SmartFootBath: SmartFootBath,
    SmartGasMeter: SmartGasMeter,
    SmartHeatPump: SmartHeatPump,
    SmartJumpRope: SmartJumpRope,
    SmartLitterBox: SmartLitterBox,
    SmartLunchBox: SmartLunchBox,
    SmartMassageChair: SmartMassageChair,
    SmartMosquitoRepellent: SmartMosquitoRepellent,
    SmartPetFeeder: SmartPetFeeder,
    SmartPetWaterDispenser: SmartPetWaterDispenser,
    SmartPictureFrame: SmartPictureFrame,
    SmartPillBox: SmartPillBox,
    SmartPowerStrip: SmartPowerStrip,
    SmartRiceCooker: SmartRiceCooker,
    SmartRollerCurtain: SmartRollerCurtain,
    SmartRunningShoes: SmartRunningShoes,
    SmartScreen: SmartScreen,
    SmartSpeaker: SmartSpeaker,
    SmartSwitch: SmartSwitch,
    SmartToilet: SmartToilet,
    SmartTrashCan: SmartTrashCan,
    SmartVideoDoorbell: SmartVideoDoorbell,
    SmartWatch: SmartWatch,
    SmartWaterDispenser: SmartWaterDispenser,
    SmartWaterMeter: SmartWaterMeter,
    SmartWindow: SmartWindow,
    SmartWindowOpener: SmartWindowOpener,
    SmokeSensor: SmokeSensor,
    SoilSensor: SoilSensor,
    SolarWaterHeater: SolarWaterHeater,
    SoyMilkMaker: SoyMilkMaker,
    SpeedControlSwitch: SpeedControlSwitch,
    Spotlight: Spotlight,
    StandFan: StandFan,
    StandingAirConditioner: StandingAirConditioner,
    StarProjectorLight: StarProjectorLight,
    Steamer: Steamer,
    SteeringGear: SteeringGear,
    SterilizationPot: SterilizationPot,
    SterilizingLamp: SterilizingLamp,
    StewPot: StewPot,
    StirFryMachine: StirFryMachine,
    StreetLight: StreetLight,
    SunshadeCanopy: SunshadeCanopy,
    TeaBarMachine: TeaBarMachine,
    TemperatureAndHumiditySensor: TemperatureAndHumiditySensor,
    TemperatureAndHumiditySwitch: TemperatureAndHumiditySwitch,
    TemperatureControlSocket: TemperatureControlSocket,
    TemperatureControlValve: TemperatureControlValve,
    TemperatureController: TemperatureController,
    TennisRacket: TennisRacket,
    Thermometer: Thermometer,
    Thermostat: Thermostat,
    ThreeDimensionalPrinter: ThreeDimensionalPrinter,
    TirePressureMonitor: TirePressureMonitor,
    TitaniumSmartCup: TitaniumSmartCup,
    TowelRack: TowelRack,
    TowerFan: TowerFan,
    Treadmill: Treadmill,
    UVSensor: UVSensor,
    UltrasonicParkingSensor: UltrasonicParkingSensor,
    UniversalRemoteControl: UniversalRemoteControl,
    VOCDetector: VOCDetector,
    VacuumCleaner: VacuumCleaner,
    VacuumSealer: VacuumSealer,
    Valve: Valve,
    VegetableWasher: VegetableWasher,
    VehicleTracker: VehicleTracker,
    VehicleVelocimeter: VehicleVelocimeter,
    VenetianBlindMotor: VenetianBlindMotor,
    VentilationFan: VentilationFan,
    VibrationSensor: VibrationSensor,
    VoiceActivatedSwitch: VoiceActivatedSwitch,
    WallLamp: WallLamp,
    WallMountedAirConditioner: WallMountedAirConditioner,
    WallSocket: WallSocket,
    WarmingBelt: WarmingBelt,
    WarmingPlate: WarmingPlate,
    WashingMachine: WashingMachine,
    WaterFilter: WaterFilter,
    WaterHeater: WaterHeater,
    WaterPump: WaterPump,
    WaterPurifier: WaterPurifier,
    WaterQualityDetector: WaterQualityDetector,
    WaterSoftener: WaterSoftener,
    WaterValveController: WaterValveController,
    WaterVolumeSensor: WaterVolumeSensor,
    WindSensor: WindSensor,
    WindowCleaningRobot: WindowCleaningRobot,
    WineCooler: WineCooler,
    WirelessSwitch: WirelessSwitch,
    WristStrengthener: WristStrengthener,
    YogurtMaker: YogurtMaker
  });

  const DeviceManager = {
      /**
       * 创建的设备实例
       */
      deviceInstance: [],
      /**
       * 扫描的设备列表
       */
      deviceScan: [],
      /**
       * 调试模式：未完成，目的是：本地mock使用。
       */
      debugger: false,
      /**
       * 日志模式：
       */
      loglevel: 'warn',
      log: function (...msg) {
          if (['log'].includes(this.loglevel)) {
              console.log('%cSDK', 'padding: 2px 4px; background: #1D99F2; border-radius: 4px; color: #fff;', ...msg);
          }
      },
      info: function (...msg) {
          if (['log', 'info'].includes(this.loglevel)) {
              console.info('%cSDK', 'padding: 2px 4px; background: #1D99F2; border-radius: 4px; color: #fff;', ...msg);
          }
      },
      warn: function (...msg) {
          if (['log', 'info', 'warn'].includes(this.loglevel)) {
              console.warn('%cSDK', 'padding: 2px 4px; background: #1D99F2; border-radius: 4px; color: #fff;', ...msg);
          }
      },
      error: function (...msg) {
          if (['log', 'info', 'warn', 'error'].includes(this.loglevel)) {
              console.error('%cSDK', 'padding: 2px 4px; background: #1D99F2; border-radius: 4px; color: #fff;', ...msg);
          }
      },
      /**
       * 任务列表
       */
      tasks: {},
      /**
       * 重置reset的内容
       */
      reset: function () {
          this.deviceInstance = [];
          this.deviceScan = [];
          this.debugger = false;
          this.loglevel = 'warn';
      },
  };

  /**
   * 原型链模式：实现将原型的对象挂载改变：
   * @param instance
   */
  const prototype = (instance) => {
      /**
       * 原型链
       */
      instance.__proto__.__proto__ = DeviceManager;
      Object.defineProperties(instance, {
          // 判断设备在deviceInstance在所有设备中，排列第几个，和nodejs中后台运行中：小应用使用。
          index: {
              get() {
                  // @ts-ignore
                  return this.deviceInstance.findIndex((device) => device.instance === this);
              },
          },
          // 迭代器重写监听to的实现：
          // 0x0b是nodejs平台，
          to: {
              get() {
                  if (window?.JeeWeb?.OS !== 0x0b) {
                      return this._to;
                  }

                  // 判断global上面是否挂载，没有挂载，那么
                  let deviceBind = global?.appInfo?global?.appInfo.deviceBind[this.index]:appInfo.deviceBind[this.index];
                //   let deviceBind = global?.appInfo.deviceBind[this.index];
                  // TODO:global?.appInfo?.deviceBind?.[this.index]判断一下，如果type是Single，取到第0个，否则，直接去all的数组：global?.appInfo?.deviceBind?.[this.index]?.devices
                  // @ts-ignore
                  return deviceBind.type == 'Single' ? deviceBind.devices[0] : deviceBind.devices;
                  // return global?.appInfo?.deviceBind?.[this.index]?.devices || global?.appInfo?.deviceList?.[this.index];
              },
          },
      });
      /**
       * 属性
       */
      instance.callbacks = [];
      instance.timerCallbacks = [];
      instance.onlineCallbacks = [];
      instance.batteryCallbacks = [];
      instance.networkCallbacks = [];
      /**
       * 订阅
       */
      instance.onReceive = function (...rest) {
          this.warn('warning:方法 onReceive 已废弃，请使用 subscribe 代替');
          this.warn(JSON.stringify(rest));
          this.warn('onReceive');
          this.subscribe(...rest);
      };
      instance.subscribe = function (key, callback) {
          if (isFunction(key)) {
              callback = key;
              key = [];
          }
          this.callbacks.push({
              key,
              callback,
          });
      };
      instance.onReceiveTimer = function (...rest) {
          this.warn('方法 onReceiveTimer 已废弃，请使用 subscribeTimer 代替');
          this.subscribeTimer(...rest);
      };
      instance.subscribeTimer = function (callback) {
          this.timerCallbacks.push(callback);
      };
      instance.subscribeOnline = function (callback) {
          this.onlineCallbacks.push(callback);
      };
      instance.batteryOnReceive = function (...rest) {
          this.warn('方法 batteryOnReceive 已废弃，请使用 subscribeBattery 代替');
          this.subscribeBattery(...rest);
      };
      instance.subscribeBattery = function (callback) {
          this.batteryCallbacks.push(callback);
      };
      instance.networkOnReceive = function (...rest) {
          this.warn('方法 networkOnReceive 已废弃，请使用 subscribeNetwork 代替');
          this.subscribeNetwork(...rest);
      };
      instance.subscribeNetwork = function (callback) {
          this.networkCallbacks.push(callback);
      };
  };
  /**
   * 群组条件的函数代码
   * @param instance
   */
  const prototypeCondition = (instance) => {
      instance.conditionCallbacks = [];
      instance.condition = function (condition, callback) {
          this.conditionCallbacks.push({
              condition,
              callback,
          });
      };
  };
  const prototypeGroup = (instance) => {
      Object.defineProperties(instance, {
          /**
           * 长度
           */
          length: {
              get() {
                  return this.to?.length || 0;
              },
          },
          /**
           * 迭代器：
           * 假设灯组，增加一个默认变量i，默认值-1，forin循环的时候，先调用value方法，再调用next方法
           */
          [Symbol.iterator]: {
              value() {
                  this.i = -1;
                  return {
                      next: () => {
                          let done = false;
                          if (++this.i >= this.length) {
                              done = true;
                              this.i = undefined;
                          }
                          return {
                              value: this,
                              done,
                          };
                      },
                  };
              },
          },
      });
  };

  /**
   * 通用接口
   *
   * @see https://alidocs.dingtalk.com/i/nodes/dpYLaezmVNDavNvbH1vA4n5n8rMqPxX6
   */
  const common = (dm) => {
      // 新增im消息处理队列：
      //{
      // "id": "7205c9be-99a3-4601-a5b8-43ac85b1f602",
      // "type": "sendMessage",
      // "timestamp": 1699512448611,
      // "from": "11ZKWQAABF000A000000",
      // "appInfo": {
      // "appId": "91d364d2-4d55-471f-a557-955df9235be2",
      // "groupId": "dea7505d-f5a3-4a88-9352-39bc086cd65c",
      // "appReleaseType": 1
      // },
      // "method": {
      // "method": "setIlluminationMode",
      // "params": {
      // "value": "COLD"
      // },
      // "message": "开灯"
      // }
      // }
      // 先不做封装
      dm.sendMessageTest = function (content) {
          // node层接收到后，做一层拦截
          return command({
              method: 'sendMessageTest',
              methodId: 'ppaYygpU',
              params: content,
              to: this.to,
          });
      };
      // ==================================================
      /**
       * 定时
       *
       * @see https://alidocs.dingtalk.com/i/nodes/ydxXB52LJqr2G3GAI1QG6vEL8qjMp697
       */
      // ==================================================
      dm.calibrationTime = function (content) {
          return command({
              method: 'calibrationTime',
              methodId: 'ppaYygpU',
              params: content,
              to: this.to,
          });
      };
      dm.countdown = function (content) {
          // 查找 methodId
          let methodId = '';
          if (this[content.method]) {
              const method = this[content.method].toString();
              const result = method.match(/methodId:\s*["'](\w+)['"]/);
              methodId = result ? result[1] : '';
          }
          return command({
              method: 'countdown',
              methodId: 'pUMNfegC',
              params: {
                  ...content,
                  methodId,
              },
              to: this.to,
          });
      };
      dm.cancelCountdown = function (content) {
          return command({
              method: 'cancelCountdown',
              methodId: 'pgKyRUEL',
              params: content,
              to: this.to,
          });
      };
      dm.getCountdown = function (content) {
          return command({
              method: 'getCountdown',
              methodId: 'pZIAX6YA',
              params: content,
              to: this.to,
          });
      };
      dm.getCountdownList = function (content) {
          return command({
              method: 'getCountdownList',
              methodId: 'pklFaiux',
              params: content,
              to: this.to,
          });
      };
      dm.pauseCountdown = function (content) {
          return command({
              method: 'pauseCountdown',
              methodId: 'pG25pQVr',
              params: content,
              to: this.to,
          });
      };
      dm.resetCountdown = function (content) {
          return command({
              method: 'resetCountdown',
              methodId: 'pDXJIw5Z',
              params: content,
              to: this.to,
          });
      };
      dm.resumeCountdown = function (content) {
          return command({
              method: 'resumeCountdown',
              methodId: 'p1SEnPAd',
              params: content,
              to: this.to,
          });
      };
      dm.timer = function (content) {
          // 查找 methodId
          let methodId = '';
          if (this[content.method]) {
              const method = this[content.method].toString();
              const result = method.match(/methodId:\s*'(\w+)'/);
              methodId = result ? result[1] : '';
          }
          return command({
              method: 'timer',
              methodId: 'phsPkC1S',
              params: {
                  ...content,
                  methodId,
              },
              to: this.to,
          });
      };
      dm.cancelTimer = function (content) {
          return command({
              method: 'cancelTimer',
              methodId: 'pdV8jrX3',
              params: content,
              to: this.to,
          });
      };
      dm.getTimer = function (content) {
          return command({
              method: 'getTimer',
              methodId: 'pt8nxAyV',
              params: content,
              to: this.to,
          });
      };
      dm.getTimerList = function (content) {
          return command({
              method: 'getTimerList',
              methodId: 'pzuKhH2b',
              params: content,
              to: this.to,
          });
      };
      // ==================================================
      /**
       * 电池电量
       *
       * @see https://alidocs.dingtalk.com/i/nodes/m9bN7RYPWdOdoGobfAKAYdy78Zd1wyK0
       */
      // ==================================================
      dm.getBatteryLevel = function (content) {
          return command({
              method: 'getBatteryLevel',
              methodId: 'p0qz6vZq',
              params: content,
              to: this.to,
          });
      };
      dm.getChargingStatus = function (content) {
          return command({
              method: 'getChargingStatus',
              methodId: 'pByNzNwk',
              params: content,
              to: this.to,
          });
      };
      dm.getChargingTime = function (content) {
          return command({
              method: 'getChargingTime',
              methodId: 'pXFOoTM1',
              params: content,
              to: this.to,
          });
      };
      dm.getDischargingTime = function (content) {
          return command({
              method: 'getDischargingTime',
              methodId: 'pj55qJWo',
              params: content,
              to: this.to,
          });
      };
      dm.batteryOnReceive = function (content) {
          return command({
              method: 'batteryOnReceive',
              methodId: 'pN4EGobR',
              params: content,
              to: this.to,
          });
      };
      // ==================================================
      /**
       * 网络连接
       *
       * @see https://alidocs.dingtalk.com/i/nodes/YndMj49yWjDgGeGEHxRxqR4pJ3pmz5aA
       */
      // ==================================================
      dm.getDownstreamTransferRate = function (content) {
          return command({
              method: 'getDownstreamTransferRate',
              methodId: 'Ug7SsYNG',
              params: content,
              to: this.to,
          });
      };
      dm.getIp = function (content) {
          return command({
              method: 'getIp',
              methodId: 'UwYeJE7b',
              params: content,
              to: this.to,
          });
      };
      dm.getLatency = function (content) {
          return command({
              method: 'getLatency',
              methodId: 'Ua0ReEN9',
              params: content,
              to: this.to,
          });
      };
      dm.getNetworkStatus = function (content) {
          return command({
              method: 'getNetworkStatus',
              methodId: 'pWiytWpz',
              params: content,
              to: this.to,
          });
      };
      dm.getNetworkType = function (content) {
          return command({
              method: 'getNetworkType',
              methodId: 'pqk1SRfW',
              params: content,
              to: this.to,
          });
      };
      dm.getPacketLossRate = function (content) {
          return command({
              method: 'getPacketLossRate',
              methodId: 'UO1x46On',
              params: content,
              to: this.to,
          });
      };
      dm.getMac = function (content) {
          return command({
              method: 'getMac',
              methodId: 'UdGDv9Eq',
              params: content,
              to: this.to,
          });
      };
      dm.getRSSI = function (content) {
          return command({
              method: 'getRSSI',
              methodId: 'UnCX7zgI',
              params: content,
              to: this.to,
          });
      };
      dm.getTransferRate = function (content) {
          return command({
              method: 'getTransferRate',
              methodId: 'UmmnBIYE',
              params: content,
              to: this.to,
          });
      };
      dm.getUpstreamTransferRate = function (content) {
          return command({
              method: 'getUpstreamTransferRate',
              methodId: 'UDFq0cY3',
              params: content,
              to: this.to,
          });
      };
      dm.getWifi = function (content) {
          return command({
              method: 'getWifi',
              methodId: 'Uhn7cIOx',
              params: content,
              to: this.to,
          });
      };
      // ==================================================
      /**
       * 参数存储
       *
       * @see https://alidocs.dingtalk.com/i/nodes/vy20BglGWOgm9k9Ki19jyda0WA7depqY
       */
      // ==================================================
      dm.getBuildVersion = function (content) {
          return command({
              method: 'getBuildVersion',
              methodId: 'UkmrCM31',
              params: content,
              to: this.to,
          });
      };
      dm.getChip = function (content) {
          return command({
              method: 'getChip',
              methodId: 'U0DulpmR',
              params: content,
              to: this.to,
          });
      };
      dm.getDeviceId = function (content) {
          return command({
              method: 'getDeviceId',
              methodId: 'UrPw8XiI',
              params: content,
              to: this.to,
          });
      };
      dm.getFlashSize = function (content) {
          return command({
              method: 'getFlashSize',
              methodId: 'UYMQPKro',
              params: content,
              to: this.to,
          });
      };
      dm.getKey = function (content) {
          return command({
              method: 'getKey',
              methodId: 'UqocHFB9',
              params: content,
              to: this.to,
          });
      };
      dm.getProductBoard = function (content) {
          return command({
              method: 'getProductBoard',
              methodId: 'U3f3yn1k',
              params: content,
              to: this.to,
          });
      };
      dm.getProductCode = function (content) {
          return command({
              method: 'getProductCode',
              methodId: 'UWbSjL4n',
              params: content,
              to: this.to,
          });
      };
      dm.getProductDevice = function (content) {
          return command({
              method: 'getProductDevice',
              methodId: 'UXOZIa2z',
              params: content,
              to: this.to,
          });
      };
      dm.getProductManufacturer = function (content) {
          return command({
              method: 'getProductManufacturer',
              methodId: 'UBx2n7uW',
              params: content,
              to: this.to,
          });
      };
      dm.getSerialNo = function (content) {
          return command({
              method: 'getSerialNo',
              methodId: 'UVg0TttE',
              params: content,
              to: this.to,
          });
      };
      dm.getToken = function (content) {
          return command({
              method: 'getToken',
              methodId: 'F4jCFSbM',
              params: content,
              to: this.to,
          });
      };
      // ==================================================
      /**
       * OTA
       *
       * @see https://ox8zrpl57d.feishu.cn/wiki/ROUmwFYNLi01j4kANUTclkiAnOf
       */
      // ==================================================
      dm.otaUpgrade = function (content) {
          return command({
              method: 'otaUpgrade',
              methodId: 'FQwlmVLK',
              params: content,
              to: this.to,
          });
      };
      dm.getCurrentFirmwareVersion = function (content) {
          return command({
              method: 'getCurrentFirmwareVersion',
              methodId: 'FaeDK3Ul',
              params: content,
              to: this.to,
          });
      };
      dm.getFirmwareDownloadProgress = function (content) {
          return command({
              method: 'getFirmwareDownloadProgress',
              methodId: 'FORT9GK5',
              params: content,
              to: this.to,
          });
      };
      dm.getOtaUpgradeStatus = function (content) {
          return command({
              method: 'getOtaUpgradeStatus',
              methodId: 'FSNrzxzm',
              params: content,
              to: this.to,
          });
      };
      dm.getBatteryStatus = function (content) {
          return command({
              method: 'getBatteryStatus',
              methodId: 'FbymobNP',
              params: content,
              to: this.to,
          });
      };
      dm.getDownloadSpaceStatus = function (content) {
          return command({
              method: 'getDownloadSpaceStatus',
              methodId: 'FRUuNcOw',
              params: content,
              to: this.to,
          });
      };
      dm.getFirmwareDownloadedStatus = function (content) {
          return command({
              method: 'getFirmwareDownloadedStatus',
              methodId: 'F962iY7U',
              params: content,
              to: this.to,
          });
      };
      dm.getFirmwareCheckStatus = function (content) {
          return command({
              method: 'getFirmwareCheckStatus',
              methodId: 'F6WiODeC',
              params: content,
              to: this.to,
          });
      };
      dm.otaReceive = function (content) {
          return command({
              method: 'otaReceive',
              methodId: 'F7TwtsDA',
              params: content,
              to: this.to,
          });
      };
  };

  /**
   * 订阅上报事件
   */
  function subscribe(res) {
      const { from: id, method, params } = res;
      this.log('上报数据', res);
      // 消息上报
      const isMsg = method === 'onReceive';
      // 定时消息上报
      const isTimer = method === 'onReceiveTimer';
      // 上下线消息上报
      const isOnline = method === 'notify' && params.type === 1003;
      // 电池电量消息上报
      const isBattery = method === 'batteryOnReceive';
      // 网络连接消息上报
      const isNetwork = method === 'networkOnReceive';
      for (const value of this.deviceInstance) {
          let { devices, instance } = value;
          // 判断设备是否为空
          if (isEmpty(devices)) {
              continue;
          }
          // 对象转数组
          if (isPlainObject(devices)) {
              devices = [devices];
          }
          // 判定 id 是否匹配
          if (devices.every((device) => device.id !== id)) {
              continue;
          }
          let callbacks = [];
          if (isMsg)
              callbacks = instance.callbacks;
          if (isTimer)
              callbacks = instance.timerCallbacks;
          if (isOnline)
              callbacks = instance.onlineCallbacks;
          if (isBattery)
              callbacks = instance.batteryCallbacks;
          if (isNetwork)
              callbacks = instance.networkCallbacks;
          // 判定 callback 是否声明
          if (!callbacks.length) {
              this.log(`设备 ${instance.opts.name} 未监听上报事件`);
          }
          const index = devices.findIndex((device) => device.id === id);
          // 普通消息上报
          if (isMsg) {
              forEach(callbacks, ({ key, callback }) => {
                  const payload = isArray$1(key) && !isEmpty(key) ? pick$1(params, key) : params;
                  if (isFunction(callback) && !isEmpty(payload)) {
                      callback({
                          ...payload,
                          deviceIndex: index,
                          deviceInstance: instance,
                      });
                  }
              });
              forEach(instance.conditionCallbacks, ({ condition, callback }) => {
                  if (!instance.device.condition || !isFunction(callback)) {
                      return;
                  }
                  // 如果上报数据 key 的值 !== 监听值
                  if (params[condition.key] !== condition.value) {
                      return;
                  }
                  // 且 and
                  if (instance.device.conditionData === 'and') {
                      // 调用对应方法获取其他设备值
                      instance[condition.method]?.(condition.params)?.then?.((arr) => {
                          // 如果所有数据 key 的值等于监听值
                          if (arr.every(({ data }) => data === condition.value)) {
                              callback(params);
                          }
                      });
                  }
                  // 或 or
                  if (instance.device.conditionData === 'or') {
                      callback(params);
                  }
              });
              break;
          }
          // 上下线消息上报
          if (isOnline) {
              forEach(callbacks, (callback) => {
                  callback({
                      ...params.payload,
                      deviceIndex: index,
                      deviceInstance: instance,
                  });
              });
              break;
          }
          // 其他消息上报
          forEach(callbacks, (callback) => {
              callback({
                  ...params,
                  deviceIndex: index,
                  deviceInstance: instance,
              });
          });
      }
  }

  /**
   * Common将当前的DeviceManager对象挂到对象中，装饰器模式实现
   */
  common(DeviceManager);
  /**
   * Device
   */
  forEach(devices, (device) => {
      // 使用示例：new DeviceManager.Light();
      DeviceManager[device.name] = function (opt) {
          if (!(this instanceof DeviceManager[device.name])) {
              throw new Error(`DeviceManager.${device.name} 必须通过 new 实例化对象`);
          }
          return create.call(DeviceManager, device, opt);
      };
      // 使用示例：DeviceManager.createLight();
      DeviceManager[`create${device.name}`] = function (opt) {
          if (this instanceof DeviceManager[device.name]) {
              throw new Error(`DeviceManager.${device.name} 不能通过 new 实例化对象`);
          }
          return create.call(DeviceManager, device, opt);
      };
      // 使用示例：DeviceManager.getLight();
      DeviceManager[`get${device.name}`] = function (opt) {
          if (this instanceof DeviceManager[device.name]) {
              throw new Error(`DeviceManager.${device.name} 不能通过 new 实例化对象`);
          }
          this.warn(`方法 get${device.name} 已废弃，请使用 create${device.name} 代替`);
          return create.call(DeviceManager, device, opt);
      };
  });
  /**
   * Events
   */
  /**
   * 创建设备实例
   */
  function create(device, opt) {
      /**
       * 参数
       */
      if (isString(opt) || isUndefined(opt)) {
          opt = { name: opt };
      }
      /**
       * 设备：绑定设备
       */
      const deviceBind = get(window, 'JeeWeb.deviceBind', get(window, 'JeeWeb.TargetDeviceList', []));
      if (deviceBind[this.deviceInstance.length]) {
          const { devices: to, ...device } = deviceBind[this.deviceInstance.length];
          opt.device = device;
          // TODO：to有可能是数组或事对象或undefined，如果to对象：单一，数组：多个群组，
          opt.to = device.type === 'Single' ? to[0] : to;
          /**
           * 兼容代码：如果是undefined，做一下如果数据结果老的，做一下兼容。
           */
          if (isUndefined(to)) {
              opt.to = device;
          }
      }
      /**
       * 创建设备实例
       */
      let instance = new device(opt);
      const categoryCode = instance.categoryCode;
      const categoryName = instance.categoryName;
      /**
       * 原型链，原型链模式和装饰器模式实现一下挂载对象实例
       */
      prototype(instance);
      /**
       * 群组设备
       */
      if (opt.group === true) {
          prototypeGroup(instance);
      }
      /**
       * 条件设备
       */
      if (opt.condition === true) {
          prototypeCondition(instance);
      }
      /**
       * 可选设备
       */
      if (opt.optional === true && isEmpty(opt.to)) {
          instance = null;
      }
      /**
       * 实例数组
       */
      this.deviceInstance.push({
          instance,
          device: opt.device,
          devices: opt.to,
      });
      /**
       * 扫描数组
       */
      this.deviceScan.push({
          categoryAlias: device.name,
          categoryCode,
          categoryName,
          name: opt.name,
          type: opt.group ? 'Group' : 'Single',
          condition: !!opt.condition,
          optional: !!opt.optional,
      });
      /**
       * 兼容代码
       */
      const deviceMaps = {};
      if (window.checkDevive === undefined) {
          window.checkDevive = [];
      }
      window.checkDevive.push({
          deviceArr: [],
          deviceName: device.name,
          name: opt.name,
          productId: categoryCode,
      });
      window.checkDevive.forEach((item) => {
          if (!deviceMaps[item.productId]) {
              deviceMaps[item.productId] = [];
          }
          deviceMaps[item.productId].push({
              deviceId: `-2${item.productId + uniqueId().padStart(9, '0')}`,
              deviceName: item.deviceName,
          });
      });
      window.checkDevive.forEach((item) => {
          item.deviceArr = deviceMaps[item.productId];
      });
      /**
       * 返回设备实例
       */
      return instance;
  }
  /**
   * Subscribe
   */
  let _JeeWeb = window.JeeWeb;
  // 将subcribe的内容订阅函数，赋值到_subscribe
  let _subscribe = _JeeWeb?.subscribe || _JeeWeb?.onReceive;
  /**
   * 将DeviceManager对象绑定到全局，将DeviceManager对象绑定到subcribe对象上，
   * 其实这里将函数(subscribe.bind(DeviceManager))放入_subscribe()中；
   */
  _subscribe?.(subscribe.bind(DeviceManager));
  if (!_JeeWeb) {
      Object.defineProperty(window, 'JeeWeb', {
          configurable: true,
          enumerable: true,
          get() {
              return _JeeWeb;
          },
          set(value) {
              _JeeWeb = value;
              _subscribe = _JeeWeb?.subscribe || _JeeWeb?.onReceive;
              _subscribe?.(subscribe.bind(DeviceManager));
          },
      });
  }
  window.DeviceManagerSDK = function () {
      // 为了兼容老平台的包：window.DeviceManagerSDK
      // 每次挂载DeviceManager的时候，将全局的DeviceManager的对象重置一下
      DeviceManager.reset();
      return DeviceManager;
  };

  return DeviceManager;

}));


// global.appInfo = appInfo;
// global.window.JeeWeb.deviceBind = appInfo.deviceBind

// --------------------------------
// 以上为程序注入 header 部分代码
// --------------------------------
